AutoFilter メソッド
【書式】
object.AutoFilter ( [ field, criteria1 ] )
引数・戻り値
- object ・・・ 対象となる Range オブジェクトを指定します。
- field ・・・ フィルターの対象となるフィールド番号を整数で指定します。対象となる範囲の最も左側の列(フィールド)が、フィールド番号 1 になります。
複数の列(フィールド)をまとめて扱いたい場合は、配列を指定することも可能です。
(例)field := Array(1,3,6) - criteria1 ・・・ 抽出条件となる文字列を指定します。
AutoFilter メソッド の引数の詳細については、オートフィルタ(AutoFilter メソッド) を参照してください。
抽出条件で使用できる演算子・記号
定数 | 内容 |
= | criteria1 := “=100” のように使用します(100 と等しい値を抽出) “=” を指定すると空白セルを抽出します |
<> | criteria1 := “<>山” のように使用します(「山」を含まないレコードを抽出) “<>” を指定すると空白セル以外を抽出します |
< | criteria1 := “<100” のように使用します(100 より小さい値を抽出) |
<= | criteria1 := “<=100” のように使用します(100 以下の値を抽出) |
> | criteria1 := “>100” のように使用します(100 より大きい値を抽出) |
>= | criteria1 := “>=100” のように使用します(100 以上の値を抽出) |
* | 任意の文字列を表します criteria1 := “*山* のように使用します(山を含むレコードを抽出) “山*”「山ではじまるレコード」、“*山”「山で終わるレコード」 |
? | 任意の1文字を表します criteria1 := “??山” のように使用します(山で終わる3文字の文字列) |
* や ? は、数値のセルでは使用できません。
下記、成績表(AutoFilter メソッド 使用例)の「登録番号」列には、数値が入力されています。この列を対象に、末尾が 1 の数値を抽出するために
criteria1 := “*1”
を指定しても何も抽出されません。
criteria1 := “???1”
の場合も同様に何も抽出されません。
(※ ただし、数値の先頭に ‘(シングルクォーテーション)を付けて文字列として認識させると、抽出可能となります。)
* や ? そのものを抽出するには、* や ?の前に、~(チルダ)を付けます。
criteria1 := “~*”
criteria1 := “~?”
AutoFilter メソッド 使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Sub Sample03_AutoFilter() With Range("B3") '「氏名」「川」で始まる4文字のレコードまたは '「氏名」「田」を含むレコードを抽出 .AutoFilter Field:=2, _ Criteria1:="川???", _ Criteria2:="*田*", _ Operator:=xlOr '「国語」「数学」「英語」がいずれも80点以上のレコードを抽出 .AutoFilter Field:=Array(5, 6, 7), _ Criteria1:=">=80" '全教科の平均が50点以上のレコードを抽出 .AutoFilter Field:=9, _ Criteria1:=">50" End With End Sub |
実行結果
サンプルVBAソース実行前
実行後