
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ベーシック選択問題集をご用意しました。
すべてのシートのフィルターを解除するコード
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で自動化するコードのベースが習得できる解説書」
Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。