オブジェクト.AutoFilter(Field[抽出条件の列],Criteria1[抽出条件を指定①],Operator[定数],Criteria2[抽出条件を指定②])
記述例:Range(“A1″).AutoFilter Field:=2,Criteria1:=”>100″,Operator:=xlAnd,Criteria2:=<200″
説明 :A1の行にオートフィルタを設定し、Field=2とは、A1から2列目 B2列を意味します。B列の内容でCriteria1と2は、抽出条件100以上かつ(xlAnd)200以下のデータを抽出します。
Operator定数(AutoFilter) | 説明(内容) |
---|---|
xlAnd(既定値) | And条件 |
xlOr | Or条件 |
xlTop10Items | 上位●件(数値は自由に指定できます。) |
xlTop10Percent | 上位●%(数値は自由に指定できます。) |
xlBottom10ltems | 下位●件(数値は自由に指定できます。) |
xlBottom10Percent | 下位●%(数値は自由に指定できます。) |
抽出条件の記述例(AutoFilter) | 説明(内容) |
---|---|
"=100" | 100と等しい |
"200" | 200と等しくない |
">300" | 300を超える |
">=400" | 400以上 |
" | 500未満 |
"= | 600以上 |
"" | 空白以外 |
"=" | 空白セル |
"*文字列*" | [文字列]を含む |
"*文字列*" | [文字列]を含まない |
Sub AutoFilter01() Range("A1").AutoFilter field:=4, Criteria1:="男" 'A列からの4列目(性別)の”男”を抽出 MsgBox "男のみ抽出" Range("A1").AutoFilter 'オートフィルタ―解除 End Sub
Sub AutoFilter02() Range("A1").AutoFilter field:=6, Criteria1:=">=70" 'A列からの6列目(国語)の点数が70点以上を抽出 MsgBox "国語が70点以上" Range("A1").AutoFilter 'オートフィルタ―解除 End Sub
Sub AutoFilter03() Range("A1").AutoFilter field:=7, Criteria1:="<=70", _ Operator:=xlAnd, Criteria2:=">=40" 'A列からの7列目(数学)の点数が40点以上~70点以下を抽出 MsgBox "数学が40点以上~70点以下" Range("A1").AutoFilter 'オートフィルタ―解除 End Sub
Sub AutoFilter04() Range("A1").AutoFilter field:=2, Criteria1:="*山*" 'A列からの2列目(名前)に”山”の文字がある名前を抽出 MsgBox "名前に’山’の文字がある方を抽出" Range("A1").AutoFilter 'オートフィルタ―解除 End Sub
Sub AutoFilter05() Range("A1").AutoFilter field:=6, Criteria1:=">=70" 'A列からの6列目(国語)の点数が70点以上を抽出 Range("A1").AutoFilter field:=7, Criteria1:=">=70" 'A列からの7列目(数学)の点数が70点以上を抽出 Range("A1").AutoFilter field:=8, Criteria1:=">=70" 'A列からの8列目(英語)の点数が70点以上を抽出 MsgBox "国語・数学・英語の点数が70点以上の方を抽出" Range("A1").AutoFilter 'オートフィルタ―解除 End Sub
Sub AutoFilter06() Range("A1").AutoFilter field:=6, Criteria1:=6, Operator:=xlTop10Items 'A列からの6列目(国語)の点数の上位6名を抽出 MsgBox "国語の点数の上位6名" Range("A1").AutoFilter 'オートフィルタ―解除 End Sub
Sub AutoFilter07() Dim ALLMAN, MANCOUNT, WOMANCOUNT As Integer ALLMAN = Cells(Rows.Count, "A").End(xlUp).Row - 1 '全体のデータ数をカウント; A列の最終行 -1は、先頭行分を引く Range("A1").AutoFilter field:=4, Criteria1:="女" '性別の女性を抽出 WOMANCOUNT = Range("A1", Cells(ALLMAN, 1)).SpecialCells(xlCellTypeVisible).Count '抽出された女性をカウントする。 MANCOUNT = ALLMAN - WOMANCOUNT '全体のデータ数から女性のカウント数を引いて、男性のカウント数を計算する。 MsgBox "全体で" & ALLMAN & "人です。男性は、" & MANCOUNT & "人です。女性は、" & WOMANCOUNT & "人です。" Range("A1").AutoFilter 'オートフィルタ―解除 End Sub