AutoFilterについて
2021-03-07 00:00:00
RangeオブジェクトのAutoFilterメソッドを使って、オートフィルタ機能をVBAから使う方法についてまとめました。
AutoFilterメソッドのパラメーター
- Field – フィールド番号。最も左側にあるフィールドが1。
- Criteria1 – 抽出条件。
- Operator – フィルターの種類。
- Criteria2 – 2番目の抽出条件。
- VisibleDropDown – ドロップダウン矢印の表示/非表示。
- SubField – データ型のフィールド。
抽出条件で、空白のフィールドを検索するには “=”、空白以外のフィールドを検索するには “<>”を使用します。Operatorが xlTop10Itemsなどの場合は、Criteria1 に項目数(たとえば”10″)を指定します。VisibleDropDown/SubFieldについては、使う場面があまり多くなさそうなので、今回のサンプルでは使っていません。
使い方サンプル
一つの条件だけで絞り込む
Range("A1").AutoFilter 1, "ABC" Range("A1").AutoFilter 1, ">1"
絞り込みの解除(指定した列だけ解除される)
Range("A1").AutoFilter 1
複数の条件で絞り込む
Range("A1").AutoFilter 1, "AAA", xlOr, "BBB" Range("A1").AutoFilter 1, ">1", xlAnd, "<100"
上位、下位で絞り込む
Range("A1").AutoFilter 1, "5", xlTop10Items Range("A1").AutoFilter 1, "10", xlBottom10Items Range("A1").AutoFilter 1, "5", xlTop10Percent Range("A1").AutoFilter 1, "10", xlBottom10Percent
複数の値で絞り込む
Range("A1").AutoFilter 1, Array("A", "B", "C", "D"), xlFilterValues
セルやフォントの色で絞り込む
Range("A1").AutoFilter 1, vbYellow, xlFilterCellColor Range("A1").AutoFilter 1, , xlFilterNoFill Range("A1").AutoFilter 1, vbRed, xlFilterFontColor Range("A1").AutoFilter 1, , xlFilterAutomaticFontColor
すべての引数を省略するとAutoFilterの解除ができます。AutoFilterが設定されているときだけ実行するように、下のようにAutoFilterModeをチェックするとよいと思います。
If ActiveSheet.AutoFilterMode Then Range("A1").AutoFilter End If