Excel VBA

[ExcelVBA] データの抽出方法[AutoFilter(オートフィルタ)]

2020年3月21日

 

本記事はエクセル2019で動作確認を行っています。

 

困ってます

ExcelVBAを使用してオートフィルタでデータの抽出を行いたいです。

複数条件で抽出できるといいのですが?

 

 

本記事はこのような疑問にお答えします。

 

サイト運営者であるロンピー(@ronpeee0809)はExcelVBAを使用して10年以上会社部内の業務改善を行っています。

これからVBAを学ぶ方がスムーズに学習を進められる手助けをしていきます。

ロンピー

 

 

データの中から自身の希望に合ったデータを抽出するのにオートフィルタを使うことは多いのではないでしょうか?

 

オートフィルタはエクセルの「データ」タブ>「オートフィルタ」で設定することができます。

 

VBAではどのような記述になるか見ていきましょう。

 

データの抽出方法[AutoFilter(オートフィルタ)]

 

(式)

オブジェクト.AutoFilter(Field,Criteria1,Operator,Criteria2,VisibleDropDown)

 

オートフィルタをVBAで記述するには、AutoFilterメソッドを使用します。

AutoFilterの後にさまざまな引数を指定することで、より細かなフィルター設定が可能です。

 

<引数>

(Field)

オートフィルタをかけたい列番号を指定します。

 

(Criteria1)

等号(=)や不等号を利用して条件を指定できます。

 

内容例 記述方法
合格 “合格”
合格以外 “<>合格”
80と等しい “=80”
80より大きい “>80”
80以上 “>=80”
80より小さい “<80”
80以下 “<=80”
80以外 “<>80”

 

(Operator)

内容 記述方法
Criteria1とCriteria2をAND条件で指定する。 xlAnd
Criteria1とCriteria2をOR条件で指定する。 xlOr
上位10番までを表示 xlTop10Items
上位10%まで表示 xlTop10Percent
下位10番までを表示 xlBottom10Items
下位10%まで表示 xlBottom10Percent

 

(Criteria2)

2つ目の条件を指定する。

OperatorのAND条件やOR条件と組み合わせて使用する。

 

(VisibleDropDown)

フィルターボタンを表示する時は、Trueを指定。

フィルターボタンを非表示する時は、Falseを指定。

 

基本的なデータの抽出方法

 

D列の受験結果で合格の人をオートフィルタで抽出します。

 

 

 

Sub データの抽出()

 Range("A3").AutoFilter field:=4, Criteria1:="合格"

End Sub

 

(実行結果)

 

 

複数条件でデータの抽出方法

 

上記のサンプルで点数が70点以上90点以下の人を抽出します。

 

Sub 複数条件でデータの抽出()

 Range("A3").AutoFilter field:=3, Criteria1:=">=70", _
    Operator:=xlAnd, Criteria2:="<=90"

End Sub

(実行結果)

 

オートフィルタはエクセルでは必須の内容です。

ぜひ実際のコードを記述して動きを確認してみて下さい。

 

最後まで目を通していただきありがとうございます。

-Excel VBA
-

Copyright© Ronpeee blog , 2023 All Rights Reserved.