【Excel VBA入門】データの抽出方法|オートフィルターの条件設定を解説

操作編

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

こちらの実行結果はこちらです。
さきほど条件抽出した表にこちらのマクロ実行してみましょう。

オートフィルター機能は「オン」ですが、条件が解除されていることが確認できます。

まとめ

オートフィルター機能の使い方についてご紹介しました。

オートフィルター機能はエクセル操作ではよくつかう機能かと思いますので、いつもおなじ条件設定をしてデータを扱っているのでしたらマクロをつかってみることをオススメします。

タイトルとURLをコピーしました