【用語集に記載の内容について】

用語集に記載されているメソッドや関数の引数は、VBAエキスパート試験の試験範囲に基づいており、すべての引数を網羅しておりません。 また、書式は公式テキストの記載に準じています。
試験範囲外の引数や詳細については、ヘルプ機能やオブジェクトブラウザーをご参照ください。

【コードをコピーして実行する場合の注意】

文字コードの関係上、半角の「¥」は「/」で表示されるため、当サイトでは全角の「¥」で記載しています。当サイトのコードをコピーして実行する場合は、全角の「¥」を半角の「¥」に変換してください。

セルのAutoFilterメソッド

名称セルのAutoFilterメソッド
説明
指定したセルを含む表形式のデータにオートフィルターを設定し、特定の条件に一致する行を絞り込んで表示します。
書式
セル.AutoFilter Field, Criteria1, Operator, Criteria2

セル:オートフィルターを設定するセル範囲を指定
Field[省略可能]:フィルターを適用する列番号を数値で指定
Criteria1[省略可能]:Fieldに指定した列に対する1つ目のフィルター条件を指定
Operator[省略可能]:Fieldに指定した列に対して複数条件を指定する場合の演算子を定数で指定
Criteria2[省略可能]:Fieldに指定した列に対する2つ目のフィルター条件を指定

<Operatorに指定可能な定数(一部)>
xlAnd:Criteria1とCriteria2に指定した条件をAND条件で結合
xlOr:Criteria1とCriteria2に指定した条件をOR条件で結合
xlFilterValues:Criteria1に指定した配列の複数の値をOR条件で結合

セルには、オートフィルターを設定する表の中のセルの1つを指定すると、そのセルを含む表全体にオートフィルターが設定されます。

Fieldに指定する列番号は、オートフィルターを設定する表の左端の列を1とします。

Criteria1、Criteria2に指定する条件は、ダブルクォーテーションで囲みます。

Operatorに指定可能な定数xlFilterValuesは、ひとつの列に3つ以上の条件を指定する場合に使用します。
コード例①
【絞り込み条件を1つ設定】
Sub Macro1()
    Range("A1").AutoFilter Field:=1, Criteria1:="バナナ"
End Sub

AutoFilterメソッドで、アクティブシートのセルA1を含む表(セル範囲A1:B5)にオートフィルターを設定し、表の1列目を「バナナ」で絞り込みます。

<マクロ実行前>
A B
1 品名 在庫数
2 リンゴ 40
3 バナナ 60
4 イチゴ 20
5 ブドウ 30

<マクロ実行後>
A B
1 品名 ▼ 在庫数
3 バナナ 60
コード例②
【絞り込み条件を2つ設定し、OR条件でデータを絞り込み】
Sub Macro2()
    Range("A1").AutoFilter Field:=1, Criteria1:="バナナ", Operator:=xlOr, Criteria2:="ブドウ"
End Sub

AutoFilterメソッドで、アクティブシートのセルA1を含む表(セル範囲A1:B5)にオートフィルターを設定し、表の1列目を「バナナ」または「ブドウ」で絞り込みます。

<マクロ実行前>
A B
1 品名 在庫数
2 リンゴ 40
3 バナナ 60
4 イチゴ 20
5 ブドウ 30

<マクロ実行後>
A B
1 品名 ▼ 在庫数
3 バナナ 60
5 ブドウ 30
コード例③
【絞り込み条件を2つ設定し、OR条件でデータを絞り込み】
Sub Macro3()
    Range("A1").AutoFilter Field:=2, Criteria1:=">=20", Operator:=xlAnd, Criteria2:="<=50"
End Sub

AutoFilterメソッドで、セルA1を含む表(セル範囲A1:B5)にオートフィルターを設定し、表の2列目を20以上かつ50以下のデータに絞り込みます。

<マクロ実行前>
A B
1 品名 在庫数
2 リンゴ 10
3 バナナ 20
4 イチゴ 50
5 ブドウ 70

<マクロ実行後>
A B
1 品名 在庫数 ▼
3 バナナ 20
4 イチゴ 50
コード例④
【オートフィルターの設定と解除】
Sub Macro4()
    Range("A1").AutoFilter
End Sub

AutoFilterメソッドの引数をすべて省略すると、オートフィルターが設定されていない場合は設定され、既に設定されている場合は解除されます。

手動操作で[Ctrl]+[Shift]+[L]キーを押した時の動作と同じです。
コード例⑤
【オートフィルターの絞り込みの解除】
Sub Macro5()
    Range("A1").AutoFilter Field:=1
End Sub

アクティブシートのオートフィルターが設定されているセル範囲の1列目が条件で絞り込まれている状態で、マクロを実行すると、1列目の絞り込みが解除され、全データが表示されます。
カテゴリスタンダード