膨大なデータを絞り込む時、実務ではオートフィルターが重宝されます。今日は、VBAからオートフィルターの基本を見てみましょう。

 

オートフィルターの設定

 

構文
Range.AutoFilter(Field, Criteria1, Operator, Criteria2, VisibleDropDown)

 

Range(セル範囲).AutoFilter Field:=絞り込む列番号, Criteria1:=絞り込む文字列  

 


 

Sub test1()

 

   ’ テープルのD列性別を「男」のみを表示する
    Range("A1:G11").AutoFilter Field:=4, Criteria1:="

 

End Sub

 

実行結果

 

 

 

オートフィルターの解除

 

 

Sub test2()

       

   ’ フィルター状態によって処理分岐
    If ActiveSheet.AutoFilterMode = True Then

            ’ フィルターの解除

            ActiveSheet.AutoFilterMode = False


    ElseIf ActiveSheet.AutoFilterMode = False Then

 

            MsgBox "フィルター未設定", vbInformation
    End If

 

End Sub

 

 

Sub test3()

 

   ’ 全データを表示する(実質フィルターの解除)
    Activesheet.ShowAllData 

 

End Sub


    

複数条件でフィルターする
 
同じ列に複数条件でフィルターする

Sub test4()

   ’ 出身地を「千葉県」と「埼玉県」に絞り込み

     Range("A1:G11").AutoFilter Field:=7, Criteria1:="千葉県", Operator:=xlOr, Criteria2:="埼玉県"
    ’ 簡略化した記載方法
   ’ Range("A1:G11").AutoFilter 7, "千葉県", xlOr, "埼玉県"

 

 

End Sub

 

実行結果

   

  

 

 

その他いろいろのフィルター

 

数字をフィルターする

Sub test5()

   ’ 年齢24歳超を絞り込む

    Range("A1:G11").AutoFilter Field:=6, Criteria1:=">24"

    ’ 簡略化した記載方法
   ’ Range("A1:G11").AutoFilter 6, ">24"

 

 

End Sub

 

実行結果

 

日付をフィルターする

Sub test6()

   ’ 生年月日1990/1/1以降を絞り込む

    Range("A1:G11").AutoFilter Field:=5, Criteria1:=">1990/1/1"

    ’ Formatによる日付変換
   ’ Range("A1:G11").AutoFilter Field:=5, Criteria1:=">" & Format("1990/01/01", "yyyy/m/d")

 

 

End Sub

 

実行結果

 

注意:日付を「等しい」と指定する際には「セルに入力されている日付(シリアル値)」で絞り込むのではなく、「見えている日付の表示形式」に合わせて絞り込む必要があります。

 

 

― ― ― ― ― ― ― ― ― ― → Excel VBA基礎入門もくじ へ戻る 

 

 

 

関連記事 

 

VBA セル罫線操作(罫線太さや色)

VBA セル罫線操作(罫線種類)

VBA セル罫線操作(罫線位置)

VBA セルの操作 文字書体設定

VBA セルの操作 もじ色の設定

VBA セルの操作 背景色の設定

VBA セルの操作 値の代入

VBA始める前の準備

VBAとは?