Excel

【Excel】VBAマクロでオートフィルタを解除(一部、すべて、再設定)する方法【Range, Autofilter, ClearContents】

当サイトでは記事内に広告を含みます

この記事では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】について確認しました。

マクロを使いこなせるとかなり便利ですので、一緒にマスターしていきましょう!!