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 番目の抽出条件となる文字列を指定します。
SubFieldOptional抽出条件を適用するデータ型のフィールド (たとえば、地理学の [人口] フィールド、または株価の [量] フィールド)。 この値を省略すると、”(表示値)” が対象になります。
VisibleDropDown省略可能True を指定すると、フィルター処理されるフィールドのオートフィルターのドロップダウン矢印を表示します。 False を指定すると、抽出されるフィールドのオートフィルターのドロップダウン矢印を非表示にします。 既定値は True です。

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

名前説明
xlAnd1Criteria1 と Criteria2 の論理 AND
xlBottom10Items4表示される最も低い値のアイテム (Criteria1 で指定されたアイテムの数)
xlBottom10Percent6表示される最も低い値のアイテム (Criteria1 で指定されたパーセンテージ)
xlFilterCellColor8セルの色
xlFilterDynamic11動的フィルター
xlFilterFontColor9フォントの色
xlFilterIcon10フィルター アイコン
xlFilterValues7フィルターの値
xlOr2Criteria1 または Criteria2 の論理 OR
xlTop10Items3表示される最も高い値のアイテム (Criteria1 で指定されたアイテムの数)
xlTop10Percent5表示される最も高い値のアイテム (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をコピーしました