ExcelVBA ワークシートに適用されているオートフィルターを解除する方法

 

ExcelVBA ワークシートに適用されているオートフィルターを解除し、データを全て表示できるようにします。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

日常業務でExcelを多用し、手動作業を減らしたいと考えている方へ
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事

 

Excel VBA オートフィルター解除の利用

以下のようなシーンで利用されます。

1.フィルターがかかっているシートでデータ全体を操作したい。

2.新しいフィルターを適用する前に、既存のフィルターをリセットしたい。

使い方

AutoFilterMode プロパティや ShowAllData メソッドを使用してフィルターを解除します。

ポイント

1.フィルターが適用されていない場合
ShowAllData メソッドを実行するとエラーが発生するため、フィルターが有効か確認してから解除する必要があります。

2.複数のシート
フィルター解除は対象のシートごとに行う必要があります。

3.保護されたシート
シートが保護されている場合は、解除するために保護を一時的に解除する必要があります。

 

Excel VBA オートフィルター解除のサンプルコード

基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事

アクティブシートのフィルターを解除する

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 メソッドでフィルターを解除します。

すべてのシートのフィルターを解除するコード

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で自動化するコードのベースを習得したい方におすすめ!

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。