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 のサポートおよびフィードバックを参照してください。