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ソース実行前
実行後