VBAのAutoFilterメソッドの基本的な使い方

VBAのAutoFilterメソッドは、Excelのデータをフィルタリングするための強力なツールです。このメソッドを使用することで、Excelシート上のデータを簡単に抽出し、必要な情報だけを表示することができます。

AutoFilterメソッドの基本的な使い方は、以下のようになります。

このコードは、”A1:D10″範囲のデータをフィルタリングし、1列目に”Apples”という値が含まれている行のみを表示します。
ここでは、AutoFilterメソッドの詳細な使い方を解説します。

AutoFilterメソッドの構文

AutoFilterメソッドの構文は以下の通りです。

  • expression:必須。フィルタを適用する範囲を指定します。
  • Field:必須。フィルタを適用する列番号を指定します。1から始まります。
  • Criteria1:オプション。フィルタ条件を指定します。
  • Operator:オプション。フィルタ条件の演算子を指定します。
  • Criteria2:オプション。二重条件フィルタの場合、2つ目の条件を指定します。
  • VisibleDropDown:オプション。TrueまたはFalseを指定し、ドロップダウンリストを表示するかどうかを指定します。

基本的なフィルタリング

最も基本的なフィルタリングは、上記の例のように、指定した列に特定の値が含まれている行を抽出する方法です。AutoFilterメソッドの引数には、フィルタを適用する範囲を指定することができます。

複数のフィルタ条件を使用する

AutoFilterメソッドを使用して、複数のフィルタ条件を指定することもできます。例えば、以下のコードは、1列目に”Apples”という値が含まれ、2列目に”Red”という値が含まれている行のみを表示します。

演算子を使用したフィルタリング

AutoFilterメソッドを使用して、演算子を使用したフィルタリングを行うこともできます。以下は演算子を使用したフィルタリングの例です。

この例では、2列目の値が5より大きくかつ10より小さい行のみを表示します。Criteria1に”>5″を指定して、5より大きい値を含む行を選択し、Criteria2に”<10″を指定して、10より小さい値を含む行を選択します。そして、Operatorに”xlAnd”を指定して、2つの条件をAND演算子で結合します。

AutoFilterメソッドでは、以下のような演算子を使用することができます。

  • xlAnd:AND演算子
  • xlOr:OR演算子
  • xlFilterValues:指定された値のいずれかに一致する行を表示します。

また、以下のような比較演算子も使用できます。

  • “=”:等しい
  • “<>”:等しくない
  • “>”:より大きい
  • “>=”:以上
  • “<“:より小さい
  • “<=”:以下

フィルタリングされたデータのコピー

AutoFilterメソッドを使用して、フィルタリングされたデータを別の場所にコピーすることもできます。以下は、フィルタリングされたデータを”Sheet2″にコピーする例です

この例では、フィルタリングされたデータをSpecialCellsメソッドを使用して取得し、Copyメソッドを使用して”Sheet2″にコピーします。SpecialCells(xlCellTypeVisible)は、フィルタリングされたセルのみを選択するために使用されます。

サンプルコード

AutoFilterメソッドを使用したサンプルコードを以下に示します。このコードは、複数の条件でフィルタリングを行い、結果を配列に格納する方法を示しています。

上級者向けのAutoFilterメソッドを使用したサンプルコードを以下に示します。このコードは、複数の条件でフィルタリングを行い、結果を配列に格納する方法を示しています。

このコードでは、以下のような処理を行っています。

  1. データ範囲を設定し、フィルター条件を設定します。
  2. フィルタリングを行い、結果を配列に格納します。
  3. フィルタリングを解除し、配列のデータを出力します。

このコードでは、Array関数を使用してフィルター条件を設定しています。また、For文を使用して、複数の条件でフィルタリングを行っています。配列にフィルター結果を格納することで、複数の条件でフィルタリングを行った場合にも効率的にデータを取得できます。さらに、Debug.Print文を使用して配列のデータを出力しています。

コメント