ExcelVBA ワークシートに適用されているオートフィルターを解除する方法

 

ExcelVBA ワークシートに適用されているオートフィルターを解除し、データを全て表示できるようにします。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!

👇実務で“そのまま使える”テンプレ付きで、コピペするだけ
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き

 

Excel VBA オートフィルター解除の利用

以下のようなシーンで利用されます。

1.フィルターがかかっているシートでデータ全体を操作したい。

2.新しいフィルターを適用する前に、既存のフィルターをリセットしたい。

Excel VBA オートフィルター解除の利用|使い方とポイント

使い方

AutoFilterMode プロパティや ShowAllData メソッドを使用してフィルターを解除します。

ポイント

1.フィルターが適用されていない場合
ShowAllData メソッドを実行するとエラーが発生するため、フィルターが有効か確認してから解除する必要があります。

2.複数のシート
フィルター解除は対象のシートごとに行う必要があります。

3.保護されたシート
シートが保護されている場合は、解除するために保護を一時的に解除する必要があります。

 

Excel VBA オートフィルター解除のサンプルコード

アクティブシートのフィルターを解除する

Option Explicit

Sub ClearFilters()
    Dim ws As Worksheet
    Set ws = ActiveSheet ' アクティブなシートを指定

    ' フィルターが有効か確認して解除
    If ws.AutoFilterMode Then
        If ws.FilterMode Then
            ws.ShowAllData ' フィルター解除
        End If
        ws.AutoFilterMode = False ' オートフィルターモード自体を解除
    End If
    
    MsgBox "フィルターを解除しました!", vbInformation
End Sub

1. AutoFilterMode プロパティでフィルターが有効か確認します。

2. FilterMode プロパティでフィルターが実際に適用されているか確認します。

3. ShowAllData メソッドでフィルターを解除します。

 

自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。

👉無料ExcelVBAベーシック選択問題138問

 

すべてのシートのフィルターを解除するコード

Option Explicit

Sub ClearFiltersAllSheets()
    Dim ws As Worksheet

    ' ワークブック内のすべてのシートをループ
    For Each ws In ThisWorkbook.Worksheets
        If ws.AutoFilterMode Then
            If ws.FilterMode Then
                ws.ShowAllData ' フィルター解除
            End If
            ws.AutoFilterMode = False ' オートフィルターモード解除
        End If
    Next ws
    
    MsgBox "すべてのシートのフィルターを解除しました!", vbInformation
End Sub

シート保護を解除(パスワードが必要な場合)

If ws.ProtectContents Then
    ws.Unprotect "パスワード" 
End If

フィルター解除後に、条件を設定して新しいフィルターを適用できます。フィルター解除が遅い場合、画面更新を停止すると改善します(Application.ScreenUpdating = False)。これらを活用すれば、効率的にデータ操作が可能になります。

 

記憶定着問題集

操作方法:1.●●●をクリック(スマホはタップ)で答え表示。2.答えをクリック(スマホはタップ)で●●●表示。1⇔2を繰り返すことで、記憶を定着できます。

1.フィルターが適用されていない場合
●●● メソッドを実行するとエラーが発生するため、フィルターが有効か確認してから解除する必要があります。

2.複数のシート
フィルター解除は対象のシートごとに行う必要があります。

3.保護されたシート
シートが保護されている場合は、解除するために保護を一時的に解除する必要があります。

 

Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。

👉無料ExcelVBAベーシック選択問題138問