関数・メソッド

指定した数値内のデータを抽出する【AutoFilterメソッド】【ExcelVBA】

条件を加えたデータを抽出

大量のデータから「ここからここまでのデータ」「これ以上のデータ」のように条件を加えたデータを抽出したい場合
AutoFilterメソッドの引数Criteria1に演算子を使い、条件を指定します。

100以上のデータを抽出するのであればこうなります。

Range(“データ範囲”).AutoFilter field:=列, Criteria1:=”>=100″

100以上かつ200以下といった二つの条件を組み合わせるときは、Criteria2に二つ目の条件式を指定します。

Range(“データ範囲”).AutoFilter field:=列, _
Criteria1:=”>=100″, Operator:=xlAnd, Criteria2:=”<=200″

 

サンプルコード

Public Sub Sample()
  'A1~A10にランダムに数字を入れる
  Dim i As Long
  For i = 1 To 10
    Randomize
    Cells(i, 1).Value = Int(100 * Rnd + 1)
  Next
  
  '■50以上100以下の数値を抽出し表示する
  Range("A1").AutoFilter field:=1, _
         Criteria1:=">=50", Operator:=xlAnd, Criteria2:="<=100"

End Sub

 

注意点

  • Operatorを省略しても動きますが、指定しないと意図しない動作に繋がってしまいます。
    これくらい簡単なコード内ならば問題ありませんが、複雑なコードや後の保守性を考えると、
    書いておく方が無難です。読み手にも親切ですね。

 

関連記事

コメント

タイトルとURLをコピーしました