VBA – オートフィルタをオフにする / フィルタをクリアする

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 8月 1, 2022

このチュートリアルでは、VBAでオートフィルタをオフにする/クリアする方法を説明します。

オートフィルターは、VBAのコードを使用してオンまたはオフにすることができます。

VBAでアクティブワークシートのオートフィルタをオフにする

次のコード例では、アクティブなシートでオートフィルタをオフにします。

Public Sub KillFilter()
  If ActiveSheet.AutoFilterMode Then
     ActiveSheet.AutoFilterMode = False
  End If
End Sub

VBAでアクティブワークシートのオートフィルタをオンにする

次のコード例では、アクティブシートでオートフィルタをオンにします。

Public Sub StartFilter()
  If Not ActiveSheet.AutoFilterMode Then
     ActiveSheet.Range("A1").AutoFilter
  End If
End Sub

VBAですべてのワークシートのオートフィルタをオフにする

次のコード例では、ワークブック全体の各シートをループし、各ワークシートのオートフィルタをオフにします。

Public Sub StopAllFilters()
  Dim ws As Worksheet
  For Each ws In ActiveWorkbook.Worksheets
    If ws.AutoFilterMode = True Then
      ws.AutoFilterMode = False
    End If
  Next ws
End Sub

VBAですべてのワークシートのオートフィルタをオンにする

同様に、次のコード例では、ワークブック全体をループし、各シートでまずフィルタの状態をチェックし、もしまだオンになっていなければ、オートフィルタをオンにします。

Public Sub StartAllFilters()
  Dim ws As Worksheet
  For Each ws In ActiveWorkbook.Worksheets
    If Not ws.AutoFilterMode Then
      ws.Range("A1").AutoFilter
    End If
  Next ws
End Sub

VBAでアクティブなワークシートのすべてのフィルタをクリアする

次のコード例では、アクティブシートのオートフィルタをオンにしたまま、データに適用されているフィルタの条件をクリアしています。

Public Sub ClearFilter()
  If ActiveSheet.FilterMode = True Then
    ActiveSheet.ShowAllData
  End If
End Sub

VBAですべてのワークシートのすべてのフィルタを解除する

同様に、次のコード例では、ワークブック全体をループし、各シートでオートフィルタがすでにオンになっている場合はそのままにし、データに適用されているフィルタの条件をすべてクリアします。

Public Sub ClearAllFilters()
  Dim ws As Worksheet
  For Each ws In ActiveWorkbook.Worksheets
    If ws.FilterMode = True Then
      ws.ShowAllData
    End If
  Next ws
End Sub

VBAでテーブルのすべてのフィルタを解除する

ワークシートにテーブルオブジェクトが含まれている場合、オートフィルタをオンにしたまま、そのフィルタに適用されているすべてのフィルタの条件をクリアするようにコードを変更することができます。

Sub ClearFilterFromTable()
  Dim ws As Worksheet
  Dim sTable As String
  Dim loTable As ListObject
  sTable = "Table1"
  Set ws = ActiveSheet
  Set loTable = ws.ListObjects(sTable)
  loTable.AutoFilter.ShowAllData
End Sub

テーブルオブジェクトがピボットテーブルにリンクされている場合、それに応じてピボットテーブルも更新されます。

VBAのコーディングが簡単に

VBAのコードをオンラインで検索するのはもうやめましょう。AutoMacro – A VBA Code Builderを使えば、初心者でも最小限のコーディング知識でゼロから手順をコーディングでき、ベテランのユーザーでも時間を節約するのに役立つ多くの機能を備えています! alt text もっと詳しく

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples