3行マクロオートフィルタでデータを絞り込む動画解説 Excel

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

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

動画で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. オートフィルターを解除する

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

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

    AutoFilterメソッド5

こちらはAutoFilterメソッドの構文で使われる引数の詳しい解説です。

名前 必須 データ型 説明
Field 省略可能 Variant フィルターの対象となるフィールド番号を整数で指定します。フィールド番号は、リストの左側から始まります。つまり、最も左側にあるフィールドはフィールド番号 1 になります。
Criteria1 省略可能 Variant 抽出条件 ("101" などの文字列)。 空白のフィールドを検索するには "="、空白以外のフィールドを検索するには "<>"、データ型の (データなし) フィールドを選択するには "><" を使用します。 この引数を省略すると、抽出条件は All になります。 演算子 が xlTop10Items の場合は、Criteria1 に項目数を指定します (たとえば "10" など)。
演算子 省略可能 XlAutoFilterOperator フィルターの種類を XlAutoFilterOperator の定数で指定します。
Criteria2 省略可能 Variant 2 番目の抽出条件となる文字列を指定します。 Criteria1 および Operator と組み合わせて使い、複合抽出条件を構築します。 日、月、または年によってフィルター処理する日付フィールドでの単一条件としても使用されます。 その後には 配列 (レベル、日付) のフィルター処理の詳細を示す配列が続きます。 レベルが 0-2 (年、月、日) の場合は、日付はフィルター処理の期間の中にある 1 つの有効な日付です。
SubField Optional Variant 抽出条件を適用するデータ型のフィールド (たとえば、地理学の [人口] フィールド、または株価の [量] フィールド)。 この値を省略すると、"(表示値)" が対象になります。
VisibleDropDown 省略可能 Variant True を指定すると、フィルター処理されるフィールドのオートフィルターのドロップダウン矢印を表示します。 False を指定すると、抽出されるフィールドのオートフィルターのドロップダウン矢印を非表示にします。 既定値は True です。


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

  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. 抽出して転記するのが目的で、元データの方のオートフィルターは解除してもよいという場合は、コメントアウトを外して実行してください。