VBAメソッドを使用してExcelでフィルターを削除する方法

Excelのフィルター機能は、データの管理と分析に非常に便利ですが、時にはシートからすべてのフィルターを削除する必要があります。これをVisual Basic for Applications(VBA)を使用して自動化することができます。

VBAを使用してフィルターを削除する基本手順

VBAを使用してフィルターを削除するために、以下の手順に従ってください:

1. VBAエディタを開く

  • Alt + F11を押して、VBAエディタを開きます。
  • VBAエディタで、挿入 > モジュールを選択して、新しいモジュールを挿入します。

2. フィルターを削除するコードを入力する

次のコードをモジュールに貼り付けます:

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

このコードは、アクティブなワークブック内のすべてのシートをループし、フィルターが有効になっている場合はフィルターを解除します。

3. コードを実行する

  • VBAエディタを閉じてExcelに戻ります。
  • Alt + F8を押して、マクロウィンドウを開きます。
  • RemoveFiltersを選択して、実行をクリックします。

このマクロを実行すると、アクティブなワークブックのすべてのシートからフィルターが削除されます。

フィルター削除の例

マクロを実行する前のデータ:

screenshot_1

フィルターを適用した後(例:カテゴリー1でフィルター):

screenshot_1-2

マクロを実行した後のデータ:

screenshot_2

追加の方法とアドバイス

基本的な方法の他に、ExcelでVBAを使用してフィルターを削除する他のアプローチもあります:

特定のシートからフィルターを削除する

特定のシートからのみフィルターを削除する必要がある場合、次のコードを使用します:
Sub RemoveFiltersFromSheet()
With Worksheets("Sheet1")
If .AutoFilterMode Then
.AutoFilterMode = False
End If
End With
End Sub

"Sheet1"をシートの名前に置き換えます。

特定のシートからフィルターを削除する例:

“Sheet1″シートのデータ(マクロ実行前):

screenshot_3

フィルター適用後(例:カテゴリー1でフィルター):

screenshot_4

“Sheet1″シートのデータ(フィルター削除後):

screenshot_5-2

特定の範囲内のフィルターを削除する

特定の範囲内のフィルターを削除する必要がある場合、次のコードを使用します:
Sub RemoveFiltersFromRange()
With Worksheets("Sheet1").Range("A1:D10")
If .Parent.AutoFilterMode Then
If .Parent.FilterMode Then
.Parent.ShowAllData
End If
End If
End With
End Sub

特定の範囲内のフィルターを削除する例:

“Sheet1″シートのデータ(マクロ実行前):

screenshot_6

フィルター適用後(例:カテゴリー1でフィルター):

screenshot_7

“Sheet1″シートのデータ(範囲内のフィルター削除後):

screenshot_8

Workbook_Openイベントを使用してフィルターを自動的に削除する

ワークブックを開くときに自動的にフィルターを削除するように設定できます:
Private Sub Workbook_Open()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.AutoFilterMode Then
ws.AutoFilterMode = False
End If
Next ws
End Sub

このコードは、ThisWorkbookモジュールに挿入する必要があります。

VBAを使用してフィルターを削除することには、いくつかの利点があります:

  • プロセスの自動化:繰り返し行う作業を簡素化し、時間を節約できます。
  • 柔軟性:ユーザーのニーズに応じてコードをカスタマイズできます。
  • 効率性:手動操作なしでタスクを迅速に実行できます。
Rate article