EXCEL VBA オートフィルタでデータの抽出・条件・設定方法 (AutoFilter)

 

EXCEL VBA オートフィルタでデータの抽出・条件・設定方法 (AutoFilter)

 

 

 ●はじめに
EXCELでデータを抽出することは、通常のEXCELでもオートフィルタ機能で簡単にデータを抽出させる事が出来ますが、VBAを使ってオートフィルタを使う場合は、プログラムに組み込む事ができるので、ある処理結果を条件にすることにより、抽出するデータを表示する事も出来ます。それでは、オートフィルターの利用方法を順番に説明いたします。

 

 

 ●書式の説明

オブジェクト.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条件
xlOrOr条件
xlTop10Items上位●件(数値は自由に指定できます。)
xlTop10Percent上位●%(数値は自由に指定できます。)
xlBottom10ltems下位●件(数値は自由に指定できます。)
xlBottom10Percent下位●%(数値は自由に指定できます。)

 

抽出条件の記述例(AutoFilter)説明(内容)
"=100"100と等しい
"<>200"200と等しくない
">300"300を超える
">=400"400以上
"<500"500未満
"=<600"600以上
"<>"空白以外
"="空白セル
"*文字列*"[文字列]を含む
"<>*文字列*"[文字列]を含まない

 

 

オートフィルタ―の条件を選択 「指定した文字列を抽出」(AutoFilter)

 

 ●プログラム説明 サンプル①
(画像クリックで拡大) 
下記のプログラムは、下表のデータからオートフィルタ―を使って指定した条件のデータを抽出します。今回は、下表のデータから”男”男性のデータを抽出します。

 

 

 

 

 ●実行前~実行後 ※オートフィルタ―を使って性別の列に「男」男性を指定しましたので、データの中から男性のみのデータが抽出されました。
(画像クリックして拡大)

 

 

 

オートフィルタ―の条件を選択 [以上・以下・未満・超える] (AutoFilter)

 

 ● プログラム説明 サンプル②
(画像クリックで拡大) 
下記のプログラムは、下表のデータからオートフィルタ―を使って指定した条件のデータを抽出します。今回は、下表のデータから”国語”データから70点以上ののデータを抽出します。

 

 

 ●実行前~実行後 ※オートフィルタ―を使って国語の点数が70点以上のデータを指定しましたので、データの中から国語の点数が70点以上のデータが抽出されました。
(画像クリックして拡大)

 

 

オートフィルタ―の条件を選択 [指定した範囲] (AutoFilter)

 

● プログラム説明 サンプル③
(画像クリックで拡大) 
下記のプログラムは、下表のデータからオートフィルタ―を使って指定した条件のデータを抽出します。今回は、下表のデータから”数学”データから40点以上~70点以下のデータを抽出します。

 

 

 

●実行前~実行後 ※オートフィルタ―を使って数学の点数が40点以上~70点以下のデータを指定しましたので、データの中から数学の点数が40点~70点以上のデータが抽出されました。
(画像クリックして拡大)

 

 

 

オートフィルタ―の条件を選択 [指定した文字列の抽出] (AutoFilter)

 

 

● プログラム説明 サンプル④
(画像クリックで拡大) 
下記のプログラムは、下表のデータからオートフィルタ―を使って指定した条件のデータを抽出します。今回は、下表のデータから「名前」の列から指定した文字列が含まれるデータを抽出します。

 

 

 

●実行前~実行後 ※オートフィルタ―を使って名前の列に、「山」の文字が含まれる条件をしていしましたので、「山」が含まれる方のデータが抽出されました。
(画像クリックして拡大)

 

 

 

 

オートフィルタ―の条件を選択 [複数の条件で抽出] (AutoFilter)

 

 

● プログラム説明 サンプル⑤
(画像クリックで拡大) 
下記のプログラムは、下表のデータからオートフィルタ―を使って指定した条件のデータを抽出します。今回は、下表のデータから「国語」・「数学」・「英語」の複数条件を指定して、3科目とも70点以上の条件に該当するデータを抽出します。

 

 

 

●実行前~実行後 ※国語・数学・英語の点数が70点以上の抽出条件を指定しましたので、該当するデータが抽出されました。
(画像クリックして拡大)

 

 

 

オートフィルタ―の条件を選択 [上位・下位を抽出] (AutoFilter)

 

 

● プログラム説明 サンプル⑥
(画像クリックで拡大) 
下記のプログラムは、下表のデータからオートフィルタ―を使って指定した条件のデータを抽出します。今回は、下表のデータから「国語」の点数の上位6名のデータを抽出します。

 

 

 

●実行前~実行後 ※国語の点数の上位6名を抽出条件に指定しましたので、該当するデータ6名が抽出されました。
(画像クリックして拡大)

 

 

オートフィルタ―の条件を選択 [抽出のデータをカウント] (AutoFilter)

 

 

● プログラム説明 サンプル⑦
(画像クリックで拡大) 
下記のプログラムは、下表のデータからオートフィルタ―を使って指定した条件のデータを抽出します。今回は、下表のデータから抽出条件で指定した抽出結果のデータ件数をカウントします。処理内容は、全体の件数から女性「女」のみを抽出し、残りのデータ件数を計算することで、男性「男」の件数を割り出します。

 

 

 

 

●実行前~実行後 ※全体の件数と男性のデータ件数・女性のデータ件数を表示する事が出来ました。
(画像クリックして拡大)

 

 

最後まで、ご覧いただきまして誠に有難うございました。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。