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列挙型
    定数内容
    xlAnd1AND条件(Criteria1かつCriteria2)
    xlOr2OR条件(Criteria1またはCriteria2)
    xlTop10Items3上位からCriteria1で指定した項目数
    xlBottom10Items4下位からCriteria1で指定した項目数
    xlTop10Percent5上位からCriteria1で指定した割合
    xlBottom10Percent6下位からCriteria1で指定した割合
    xlFilterValues7フィルターの値
    xlFilterCellColor8セルの色
    xlFilterFontColor9フォントの色
    xlFilterIcon10フィルター アイコン
    xlFilterDynamic11動的フィルター
  • 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メソッドについての解説を終了します。
ありがとうございます。

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

フォローする

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