オートフィルタでデータを絞り込む
動画でExcelマクロ解説
AutoFilterの使い方(1)
動画版「3行マクロオートフィルターでデータを絞り込む」です。
今回はオートフィルターを使って大量のデータから 必要なデータだけを絞り込む マクロを作成します。 また フィルターを解除するマクロや、 絞り込んだ データをコピーして別のセルに貼り付けるマクロも作成しましょう。このようにマクロで絞り込みを行うには RangeオブジェクトのAutoFilter メソッドを使います。
(サンプルファイルは、こちらです。 オートフィルターでデータを絞り込む、時短激うまExcelの3行マクロ~すぐに使えるミニマクロ41回サンプル)
AutoFilter(オートフィルタ)メソッドでデータの絞り込み
AutoFilter(オートフィルタ)メソッドとは
オートフィルタはExcelのデータベース機能として重要な役割を担っています。
VBAでもシンプルなコードで手軽に利用でき、マクロを作成することで必要なデータを絞り込んだりすることが自動化できます。
構文は、
Range.AutoFilter(Field, Criteria1, Operator, Criteria2, VisibleDropDown)

-
サンプルの表を使って、AutoFilterメソッドでデータを絞りこみましょう。autofilter は RANGE オブジェクトのメソッドなので、親オブジェクトとして範囲を指定してやります。サンプルのように一つの
セルを指定した場合は、そのセルを含む範囲と解釈されます。 -
次に引数を指定してやります。半角スペースを空けて第一引数のフィールドFieldを入力してやります。
次にそのフィールドの中で何を探すかということで、 criteria1 のとして”金井*”を探します。 -
コードを実行すると金井という苗字の人が抽出されました。
-
オートフィルターを解除するには、
ActiveSheet.AutoFilterMode = False
または、もう一度オートフィルターメソッドを今度は引数なしで実行します。
ActiveSheet.Range("A1").AutoFilter -
AutoFilterメソッドの構文を再び確認しましょう。AutoFilterメソッドには必須の引数はありません。
オートフィルタで抽出したデータを別のセルにコピーする
-
今度はフィールドを6番目に設定して抽出条件を千葉県にします。
さらにその抽出された範囲を同じシートのL 2セルに貼り付けることにしましょう。
オートフィルタで抽出したデータを別のセルにコピーします。
ActiveSheet.Range("B2").CurrentRegion. _
Copy Destination:=Range("L2")Sub AutoFilterTest3() ActiveSheet.Range("B2").AutoFilter Field:=6, Criteria1:="千葉県" ActiveSheet.Range("B2").CurrentRegion.Copy Destination:=Range("L2") ' ActiveSheet.AutoFilterMode = False End Sub
-
抽出して転記するのが目的で、元データの方のオートフィルターは解除してもよいという場合は、コメントアウトを外して実行してください。