Excel PC・office

【ExcelVBA】マクロでオートフィルターをかける方法を紹介

※アフィリエイト広告を利用しています

今回は、ExcelのVBAを使用して自動でオートフィルターをかける方法を紹介します。



マクロでオートフィルターをかける

VBAでフィルターを設定する場合は、Autofilterメソッドを使います。

実行範囲:フィルタをかけたい範囲(シート名.セル範囲を指定)

対象列:フィルタ範囲の中で何列目を調べるか指定する。「field:=2」で2列目という意味

絞り込み条件:データ絞り込みの条件を指定する。「Criteria1:="<>0」でデータの中で「0以外」を表示させるという意味


Autofilter実践編

文字だけでは分かりづらいので実際にサンプルを見てみましょう。

この表の中で数量が「0以外」のデータをマクロで抽出したいと思います。

使うコードはこちら:

Sub test()

Sheet1.Range("A1:B5").AutoFilter field:=2, Criteria1:="<>0"

End Sub

実行結果:

フィルターがかかり、数量が「0」のデータ「みかん」が非表示になり、それ以外の品目が表示されました。


複数条件(2つ)を指定する場合

先ほどのAutofilter実践編では、数量が「0以外」のデータのみを抽出しました。

では次に、条件を2つ指定したい場合の処理について解説します。

先ほどのコードに引数Operatorを設定し、絞り込み条件(Criteria2)を追加しました。

Operatorには、xlOr(または)もしくは、xlAnd(かつ)を指定します。2つの条件のうち、「どちらか」なのか「どちらも」なのかで使い分けをしましょう。

Criteria2には、絞り込み条件1と同じようにデータの絞り込み条件を指定しましょう。

では、この表の中で数量が「0以外」と「空白」の2つのデータをマクロで抽出したいと思います。

使うコードはこちら:

Sub test()

Sheet1.Range("A1:B5").AutoFilter field:=2, Operator:=xlAnd, Criteria1:="<>0", Criteria2:="<>"

End Sub

実行結果:

数量が0の「みかん」のデータと数量が空白の「ぶどう」のデータが非表示となりました。これで2つの条件の両方が実行されたことが分かります。



ちなみに、複数条件(2つ)を指定する場合は、上記の方法で大丈夫ですが、3つ以上の条件指定が必要な場合には、配列での処理となります。

その方法については、こちらの記事で紹介しています。

ExcelVBA複数条件の場合のオートフィルター処理
【ExcelVBA】マクロで複数条件(3つ以上)の場合にオートフィルターをかける方法を紹介

続きを見る

最後まで見ていただきありがとうございます!

  • この記事を書いた人
  • 最新記事

おとら

ブログ運営のノウハウ・節約やお小遣い稼ぎ・PC、offceの知識関連の記事を書いています。 有益な情報を発信していきますのでよろしくお願いします!

-Excel, PC・office