Range.AutoFilter メソッド (Excel)

オートフィルターを使ってリストをフィルター処理します。

構文

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

: Range オブジェクトを返す式。

パラメーター

名前 必須 / オプション データ型 説明
Field 省略可能 Variant フィルターの対象となるフィールド番号を整数で指定します。フィールド番号は、リストの左側から始まります。つまり、最も左側にあるフィールドはフィールド番号 1 になります。
Criteria1 省略可能 Variant 抽出条件 ("101" などの文字列)。 空白のフィールドを検索するには "="、空白以外のフィールドを検索するには "<>"、データ型の (データなし) フィールドを選択するには "><" を使用します。

この引数を省略すると、抽出条件は All になります。 演算子xlTop10Items の場合は、Criteria1 に項目数を指定します (たとえば "10" など)。
演算子 省略可能 XlAutoFilterOperator フィルターの種類を XlAutoFilterOperator の定数で指定します。
Criteria2 省略可能 Variant 2 番目の抽出条件となる文字列を指定します。 Criteria1 および Operator と組み合わせて使い、複合抽出条件を構築します。 日、月、または年によってフィルター処理する日付フィールドでの単一条件としても使用されます。 その後には 配列 (レベル、日付) のフィルター処理の詳細を示す配列が続きます。 レベルが 0-2 (年、月、日) の場合は、日付はフィルター処理の期間の中にある 1 つの有効な日付です。
SubField Optional Variant 抽出条件を適用するデータ型のフィールド (たとえば、地理学の [人口] フィールド、または株価の [量] フィールド)。 この値を省略すると、"(表示値)" が対象になります。
VisibleDropDown 省略可能 Variant True を指定すると、フィルター処理されるフィールドのオートフィルターのドロップダウン矢印を表示します。 False を指定すると、抽出されるフィールドのオートフィルターのドロップダウン矢印を非表示にします。 既定値は True です。

戻り値

バリアント型

注釈

この引数をすべて省略すると、このメソッドでは、指定された範囲内の AutoFilter ドロップダウン矢印の表示を単に切り替えます。

Excel for Mac は、このメソッドをサポートしていません。 Selection および ListObject の同様のメソッドはサポートされています。

数式内とは異なり、サブフィールドには、スペースを含めるための角かっこは不要です。

次の使用例は、フィールド 1 が "Otis" という文字列であるエントリだけを表示し、シート 1 のセル A1 から始まるリストをフィルター処理します。 フィールド 1 のドロップダウン矢印は非表示になります。

Worksheets("Sheet1").Range("A1").AutoFilter _
 Field:=1, _
 Criteria1:="Otis", _
 VisibleDropDown:=False

この例では、Sheet1 のセル A1 から始まるリストをフィルター処理して、サブフィールド である管理部門 (都道府県/その他) を含むフィールド 1 の値 (ここでは値が Washington ) のエントリのみを表示します。

Worksheets("Sheet1").Range("A1").AutoFilter _
 Field:=1, _
 Criteria1:="Washington", _
 SubField:="Admin Division 1 (State/province/other)"

この例では、Sheet1 の "Table1" テーブルをフィルター処理して、フィールド 1 の値の "(表示値)" が "1"、"3"、"Seattle"、または "Redmond" であるエントリのみを表示します。

Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
 Field:=1, _
 Criteria1:=Array("1", "3", "Seattle", "Redmond"), _
 Operator:=xlFilterValues

データ型は、複数のサブフィールド フィルターを適用できます。 この例では、Sheet1 の "Table1" テーブルをフィルター処理して、タイムゾーンの値が "太平洋時間帯" のサブフィールドを含むフィールド 1 の値のエントリのみを表示します。そして、"検出日"という名のサブフィールド は、"1851" または "(データなし)" のいずれかとなります。

Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
 Field:=1, _
 Criteria1:="Pacific Time Zone", _
 SubField:="Time Zone(s)"
Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
 Field:=1, _
 Criteria1:=Array("1851", "><"), _
 Operator:=xlFilterValues, _
 SubField:="Date founded"

この例では、Sheet1 の "Table1" テーブルをフィルター処理して、"人口" サブフィールドに基づいたフィールド 1 に上位 10 項目を表示します。

Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
 Field:=1, _
 Criteria1:="10", _
 Operator:=xlTop10Items, _
 SubField:="Population"

この例では、Sheet1 の Table1 というテーブルをフィルター処理し、フィールド 1 の 2019 年 1 月と 2019 年 2 月にすべてのエントリを表示します。 1 月 31 日を含む行がある必要はありません。

Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
 Field:=1, _
 Criteria2:=Array(1, "1/31/2019", 1, "2/28/2019") 

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。