この記事ではExcelのVBAマクロでオートフィルタを解除(一部、すべて、再設定)する方法【Range, Autofilter, ClearContents】について解説していきます。
ポイントとしては`Range`, `Autofilter`, `ClearContents`関数の使用です。
VBA初心者の方でも理解しやすいように、わかりやすい変数名を使用しています。
既存の変数名は、より適切な英語表記に変更してご活用いただくといいです。
それでは、各手順を詳しく見ていきましょう!
VBAマクロでオートフィルタを解除(一部)する方法【C列の解除を例に】
それではまず、C列(一部の列のみを数値指定にて)のオートフィルタ解除方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub AutofilterCColumn()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
If ws.AutoFilterMode Then
ws.AutoFilter.Range.Columns(3).AutoFilter
End If
End Sub
コードのAlt+F8を押し、マクロ選択画面でAutofilterCColumn関数を実行します。
このコードでは、Sheet1の3番目の列(C列)に設定されているフィルタを解除します。
VBAマクロでオートフィルタを解除(一部)する方法【シート1のすべての列のオートフィルタの一括解除】
続いては、シート1のすべての列に設定されたオートフィルタを一括解除する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub ClearAllAutofilters()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
If ws.AutoFilterMode Then
ws.AutoFilter.ShowAllData
End If
End Sub
コードのAlt+F8を押し、マクロ選択画面でClearAllAutofilters関数を実行します。
このコードは、Sheet1に設定されているすべてのオートフィルタを解除します。
VBAマクロでオートフィルタを解除し再設定する方法【D列のフィルタを解除し、E、F列に再設定する】
最後に、D列のフィルタを解除し、その後E、F列に新たにフィルタを設定する方法を見ていきましょう。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub ResetFilterDEF()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
If ws.AutoFilterMode Then
ws.Columns("D").AutoFilter
ws.Range("E:F").AutoFilter
End If
End Sub
コードのAlt+F8を押し、マクロ選択画面でResetFilterDEF関数を実行します。
このコードでは、最初にD列のフィルタを解除し、その後E列とF列に新たにフィルタを設定します。
まとめ VBAマクロでフィルタを解除(すべて、再設定)する方法【Range, Autofilter, ClearContents】
この記事では、VBAマクロでオートフィルタを解除(一部、すべて、再設定)する方法【Range, Autofilter, ClearContents】について確認しました。
マクロを使いこなせるとかなり便利ですので、一緒にマスターしていきましょう!!