【VBA】フィルタを設定/絞る/クリア/解除する

前提

・フィルタのクリアとは「絞るのをやめてデータを全て表示すること」
・フィルタの解除とは「フィルタを消すこと」
・フィルタを絞る/クリア/解除は、フィルタを設定したセルを選択していなくとも実施可能

準備

シート[サンプルシート]を作成し、以下の表を作成する

サンプルプログラム

Sub filterSample()
    
    Dim targetRange As Range
    
    'フィルタを設定するセル範囲の最初のセルを指定
    Set targetRange = Range("B2")
    
    'フィルタを設定
    targetRange.AutoFilter
    
    '後続処理の確認のためにフィルタを設定したセルから選択を外す
    Range("A1").Select
    
    'フィルタを絞る
    '※ここでは4列目(列「性別」)を「女性」で絞る
    '※フィルタを設定したセルが選択されていなくとも可能
    targetRange.AutoFilter Field:=4, Criteria1:="女性"
    
    'フィルタをクリア
    '※フィルタを設定したセルが選択されていなくとも可能
    If Sheets("サンプルシート").FilterMode Then
        Sheets("サンプルシート").ShowAllData
    End If
    
    'フィルタを解除 ※「フィルタを設定」と同じコード
    '※フィルタを設定したセルが選択されていなくとも可能
    targetRange.AutoFilter
    
End Sub

結果

●フィルタを設定


●フィルタを絞る


●フィルタをクリア


●フィルタを解除

注意点

・フィルタでデータを絞っていない状態でフィルタのクリアをするとエラーになるため、
 クリアをする際は必ずチェックをし、絞られていることを確認してからクリアする。

タイトルとURLをコピーしました