Excel VBA オートフィルターを操作する AutoFilterメソッド

スポンサーリンク

AutoFilter【オートフィルター】メソッド

データ範囲から特定の条件を満たすデータを絞り込んでデータを抽出して表示するオートフィルター機能をVBAで操作するには、Range【レンジ】オブジェクトのAutoFilter【オートフィルター】メソッドを使用します。

AutoFilter【オートフィルター】メソッドを使用してオートフィルターを設定すると、オートフィルターを表すAutoFilter【オートフィルター】オブジェクトが返されます。

AutoFilter【オートフィルター】メソッドの書式と設定値(引数)の説明

[]内は省略可 能です。
オブジェクト.AutoFilter( [Field, Criteria1, Operator, Criteria2, VisibleDropDown] )
【戻り値】AutoFilter【オートフィルター】オブジェクト

  • オブジェクト(必須)
    抽出元となるデータ範囲をRange【レンジ】オブジェクトで指定します。単一セルを指定した場合は、そのセルを含むアクティブセル領域が対象になります。アクティブセル領域とはCurrentRegion【カレントリージョン】プロパティで参照されるデータのひと固まりのセル範囲です。オートフィルターが設定できるのは1つのシートに1箇所だけです。
  • Field【フィールド】(省略可能)
    抽出条件の対象となる列を列番号で指定します。列番号はRange【レンジ】オブジェクトで指定したアクティブセル領域の左から何列目かを整数値で指定します。
  • Critera1【クライテリアワン】(省略可)
    1つめの抽出条件となる文字列を指定します。抽出条件は、比較演算子やワイルドカードの(「*」複数文字の代用)や(「?」1文字の代用)を使用して設定できます。

    抽出条件 記述方法
    Aと等しい “A”
    Aと等しくない “<>A”
    Aを含む “*A*”
    空白セル “=”
    空白以外のセル “<>”
    5よりおおきい “>5”
    5以上 “>=5”
    5より小さい “<5”
    5以下 “<=5”

    省略した場合は、すべてが抽出されます。また、引数Operator【オペレータ】をXlTop10Items(上位からCritera1で指定した項目数)にした場合は項目数を指定します。

  • Operator【オペレータ】(省略可)
    抽出条件をXlAutoFilterOperator列挙型の定数で指定します。

    XlAutoFilterOperator列挙型
    定数 内容
    xlAnd 1 AND条件(Criteria1かつCriteria2)
    xlOr 2 OR条件(Criteria1またはCriteria2)
    xlTop10Items 3 上位からCriteria1で指定した項目数
    xlBottom10Items 4 下位からCriteria1で指定した項目数
    xlTop10Percent 5 上位からCriteria1で指定した割合
    xlBottom10Percent 6 下位からCriteria1で指定した割合
    xlFilterValues 7 フィルターの値
    xlFilterCellColor 8 セルの色
    xlFilterFontColor 9 フォントの色
    xlFilterIcon 10 フィルター アイコン
    xlFilterDynamic 11 動的フィルター
  • Critera2【クライテリアツゥ】(省略可)
    2つめの条件となる文字列を指定します。引数Critera1【クライテリアワン】との関係を引数Operator【オペレータ】で指定して複合条件を設定します。
  • VisibleDropDown【ビジブルドロップダウン】(省略可)
    オートフィルターのドロップダウン矢印の表示をブール型の値で指定します。抽出条件の対象となる列を表す引数Field【フィールド】で指定した列が対象です。

    設定値 内容
    True 矢印が表示されます。(既定値)
    False 矢印は非表示です。

    ※この引数を省略した場合はTrueが設定されます。


AutoFilterMode【オートフィルターモード】プロパティ

指定したワークシート上のオートフィルターを解除するには、Worksheet【ワークシート】オブジェクトのAutoFilterMode【オートフィルターモード】プロパティを使用します。オートフィルターの設定状況の取得と解除の設定ができます。

AutoFilterMode【オートフィルターモード】プロパティの書式と設定値

【取得】
オブジェクト.AutoFilterMode
【戻り値】ブール型(Boolean)
【設定】
オブジェクト.AutoFilterMode = 設定値

  • オブジェクト(必須)
    WorkSheet【ワークシート】オブジェクトを指定します。
  • 設定値(必須)
    オートフィルターを解除するにはFalseを指定します。
  • AutoFilterModeプロパティの【戻り値】
    【戻り値】 内容
    True オートフィルターモードです。
    False オートフィルターモードではありません。

※オートフィルターが設定されている範囲に新たにオートフィルターを設定すると前回の絞り込み条件が残って、意図した結果にならない場合があります。

オートフィルターを設定する場合は、オートフィルターが以前に設定されているされていないに関わらず、Worksheet【ワークシート】オブジェクトのAutoFilterMode【オートフィルターモード】プロパティにFalseを設定してオートフィルターを解除することをおすすめします。


オートフィルターを解除するコード例

Sub フィルタ解除()
ActiveSheet.AutoFilterMode = False
End Sub

オートフィルターが設定されているか確認するコード例

Sub フィルタ確認()
If ActiveSheet.AutoFilterMode Then
MsgBox "オートフィルタは設定されています。"
Else
MsgBox "オートフィルタは未設定です。"
End If
End Sub

AutoFilter【オートフィルター】メソッドを使用したコード例リンク


以上で、オートフィルターを操作する AutoFilterメソッドについての解説を終了します。ありがとうございます。

スポンサーリンク

関連記事・広告