オートフィルタでデータを絞り込む

オートフィルタでデータを絞り込む(動画解説)

動画でExcelマクロ解説

AutoFilterの使い方(1)

動画版「3行マクロオートフィルターでデータを絞り込む」です。
今回はオートフィルターを使って大量のデータから 必要なデータだけを絞り込む マクロを作成します。 また フィルターを解除するマクロや、 絞り込んだ データをコピーして別のセルに貼り付けるマクロも作成しましょう。このようにマクロで絞り込みを行うには RangeオブジェクトのAutoFilter メソッドを使います。
(サンプルファイルは、こちらです。 オートフィルターでデータを絞り込む、時短激うまExcelの3行マクロ~すぐに使えるミニマクロ41回サンプル

AutoFilter(オートフィルタ)メソッドでデータの絞り込み

AutoFilter(オートフィルタ)メソッドとは

オートフィルタはExcelのデータベース機能として重要な役割を担っています。
VBAでもシンプルなコードで手軽に利用でき、マクロを作成することで必要なデータを絞り込んだりすることが自動化できます。
構文は、
Range.AutoFilter(Field, Criteria1, Operator, Criteria2, VisibleDropDown)

AutoFilterメソッドの構文
  1. サンプルの表を使って、AutoFilterメソッドでデータを絞りこみましょう。autofilter は RANGE オブジェクトのメソッドなので、親オブジェクトとして範囲を指定してやります。サンプルのように一つの
    セルを指定した場合は、そのセルを含む範囲と解釈されます。

    AutoFilterメソッドの親オブジェクトとして範囲を指定
  2. 次に引数を指定してやります。半角スペースを空けて第一引数のフィールドFieldを入力してやります。
    次にそのフィールドの中で何を探すかということで、 criteria1 のとして”金井*”を探します。

    AutoFilterメソッド2に引数FieldとCriteriaを指定
  3. コードを実行すると金井という苗字の人が抽出されました。

    AutoFilterメソッド3実行結果
  4. オートフィルターを解除するには、
    ActiveSheet.AutoFilterMode = False
    または、もう一度オートフィルターメソッドを今度は引数なしで実行します。
    ActiveSheet.Range("A1").AutoFilter

    AutoFilterメソッド4オートフィルターを解除する
  5. AutoFilterメソッドの構文を再び確認しましょう。AutoFilterメソッドには必須の引数はありません。

    AutoFilterメソッド5

オートフィルタで抽出したデータを別のセルにコピーする

  1. 今度はフィールドを6番目に設定して抽出条件を千葉県にします。
    さらにその抽出された範囲を同じシートのL 2セルに貼り付けることにしましょう。
    オートフィルタで抽出したデータを別のセルにコピーします。
    ActiveSheet.Range("B2").CurrentRegion. _
    Copy Destination:=Range("L2")

    AutoFilterメソッド6
    Sub AutoFilterTest3()
        ActiveSheet.Range("B2").AutoFilter Field:=6, Criteria1:="千葉県"
        ActiveSheet.Range("B2").CurrentRegion.Copy Destination:=Range("L2")
    '    ActiveSheet.AutoFilterMode = False
    End Sub
  2. 抽出して転記するのが目的で、元データの方のオートフィルターは解除してもよいという場合は、コメントアウトを外して実行してください。