VBAでのオートフィルターの使い方をご紹介します。
いろいろな条件設定の方法がありますので必要に応じてつかってください。
オートフィルター機能をつける
表形式のデータにたいしてオートフィルターを設定する方法をご紹介します。
ここでは、機能をつけるだけで条件設定などは行いません。
例としてこちらの表をつかってご説明します。
オートフィルター機能を追加するコードはこちらです。
Sub autofilter1() Range("A1").autofilter End Sub
実行結果はこちらです。
選択したセルの範囲を自動的に判別してオートフィルター機能がつきます。
もしいつもオートフィルター機能をつけておきたい場合は、こちらのコードをつかってください。
こちらはさきほどのコードに加えて条件分岐をつかってます。
オートフィルター機能が「オフ」であった場合は「オン」にするといった内容です。
Sub autofilter2() If ActiveSheet.AutoFilterMode = False Then Range("A1").autofilter End If End Sub
抽出条件を設定する
オブジェクト.AutoFilter([Field],[Criteria1],[Operator],[Criteria2],[VisibleDropDown])
こちらが構文です。
以下、それぞれの引数についてご紹介します。
Field
条件指定する列を番号(左側から1、2、3、4と右側に移動)で指定します。
Criteria1
抽出条件を指定します。
こちらは抽出条件の設定例です。
値 | 内容 |
“A” | 「A」 |
“A*” | 「A」から始まる |
“*A” | 「A」で終わる |
“*A*” | 「A」を含む |
“<>A” | 「A」以外 |
“<>*A*” | 「A」を含まない |
“=1” | 「1」と等しい |
“>1” | 「1」より大きい |
“>=1” | 「1」以上 |
“<1” | 「1」より小さい |
“<=1” | 「1」以下 |
“<>1” | 「1」以外 |
“” | 空白セル |
“<>” | 空白でないセル |
Operator
抽出条件の種類を指定します。
値 | 内容 |
xlAnd | 「Criteria1かつCriteria2」を満たす(AND条件) |
xlOr | 「Criteria1またはCriteria2」を満たす(OR条件) |
xlTop10Items | 大きい順に上から「Criteria1」番目までのデータ |
xlBottom10Items | 小さい順に下から「Criteria1」番目までのデータ |
xlTop10Percent | 大きい順に上から「Criteria1」%までのデータ |
xlBottom10Percent | 小さい順に下から「Criteria1」%までのデータ |
xlFilterCellColor | 「Criteria1」で指定したセルの色 |
xlFilterFontColor | 「Criteria1」で指定したフォントの色 |
Criteria2
引数「Operator」で「AND条件」や「OR条件」を指定した場合、2つ目の抽出条件を指定します。
VisibleDropDown
フィルターボタンの表示を選択します(「True」or「False」)。
「True」はボタンありで「False」はボタンなしです。
抽出条件を指定する
では実際に先ほどの表をつかってオートフィルターを指定してみましょう。
指定したい条件はこちらです。
- 店舗番号は「1以上」かつ「2以下」
- 商品は「A」
コードはこちらです。
Sub autofilter3() Range("A1").autofilter field:=2, Criteria1:=">=1", Operator:=xlAnd, Criteria2:="<=2" Range("A1").autofilter field:=3, Criteria1:="A" End Sub
こちらが実行前後の結果です。
オートフィルターの解除方法
さいごにオートフィルターの解除方法をご紹介します。
オートフィルター機能を「オフ」にするのではなく、オートフィルター機能は「オン」のままで条件抽出した内容を解除します。
コードはこちらです。
Sub autofilter4() If ActiveSheet.AutoFilterMode = True Then ActiveSheet.ShowAllData End If End Sub
こちらの実行結果はこちらです。
さきほど条件抽出した表にこちらのマクロ実行してみましょう。
オートフィルター機能は「オン」ですが、条件が解除されていることが確認できます。
まとめ
オートフィルター機能の使い方についてご紹介しました。
オートフィルター機能はエクセル操作ではよくつかう機能かと思いますので、いつもおなじ条件設定をしてデータを扱っているのでしたらマクロをつかってみることをオススメします。