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

ExcelVBAを使用してオートフィルタでデータの抽出を行いたいです。
複数条件で抽出できるといいのですが?
本記事はこのような疑問にお答えします。
これから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
(実行結果)
オートフィルタはエクセルでは必須の内容です。
ぜひ実際のコードを記述して動きを確認してみて下さい。
最後まで目を通していただきありがとうございます。