Excel VBA オートフィルターで3つ以上のOR条件で抽出する方法(AutoFilter)

スポンサーリンク
スポンサーリンク

オートフィルターで3つ以上のOR条件で抽出する方法

エクセルのオートフィルタ機能をVBAを使用してデータを抽出します。

AutoFileterの構文は以下になります。

expression.AutoFilter (Field, Criteria1, Operator, Criteria2, SubField, VisibleDropDown)

パラメータの説明は以下の通りです。

名前 必須 / オプション 説明
Field 省略可能 フィルターの対象となるフィールド番号を整数で指定します。フィールド番号は、リストの左側から始まります。
Criteria1 省略可能 抽出条件 (“101” などの文字列)。
空白のフィールドを検索するには “=”、空白以外のフィールドを検索するには “<>“、データ型の (データなし) フィールドを選択するには “><" を使用します。
この引数を省略すると、抽出条件は All になります。
Operator が xlTop10Items の場合は、Criteria1 に項目数を指定します (たとえば “10” など)。
Operator 省略可能 XlAutoFilterOperator
Criteria2 省略可能 2 番目の抽出条件となる文字列を指定します。
SubField Optional 抽出条件を適用するデータ型のフィールド (たとえば、地理学の [人口] フィールド、または株価の [量] フィールド)。 この値を省略すると、”(表示値)” が対象になります。
VisibleDropDown 省略可能 True を指定すると、フィルター処理されるフィールドのオートフィルターのドロップダウン矢印を表示します。 False を指定すると、抽出されるフィールドのオートフィルターのドロップダウン矢印を非表示にします。 既定値は True です。

XlAutoFilterOperatorの説明は以下の通りです。

名前 説明
xlAnd 1 Criteria1 と Criteria2 の論理 AND
xlBottom10Items 4 表示される最も低い値のアイテム (Criteria1 で指定されたアイテムの数)
xlBottom10Percent 6 表示される最も低い値のアイテム (Criteria1 で指定されたパーセンテージ)
xlFilterCellColor 8 セルの色
xlFilterDynamic 11 動的フィルター
xlFilterFontColor 9 フォントの色
xlFilterIcon 10 フィルター アイコン
xlFilterValues 7 フィルターの値
xlOr 2 Criteria1 または Criteria2 の論理 OR
xlTop10Items 3 表示される最も高い値のアイテム (Criteria1 で指定されたアイテムの数)
xlTop10Percent 5 表示される最も高い値のアイテム (Criteria1 で指定されたパーセンテージ)

Docs

サンプルコード

Sub autofilterTest()
    ActiveSheet.AutoFilterMode = False
    Range("$A$1:$B$10").AutoFilter _
        Field:=1, _
        Criteria1:=Array("101", "102", "105"), _
        Operator:=xlFilterValues
End Sub

解説

2行目でオートフィルタを実行前に解除します。

    ActiveSheet.AutoFilterMode = False

6行目で「xlFilterValues」を指定して配列内の文字列を抽出条件としています。

        Operator:=xlFilterValues

配列に格納した「101」「102」「105」のデータが想定通り抽出されました\(^o^)/

コメント

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