条件を加えたデータを抽出
大量のデータから「ここからここまでのデータ」「これ以上のデータ」のように条件を加えたデータを抽出したい場合
AutoFilterメソッドの引数Criteria1に演算子を使い、条件を指定します。
100以上のデータを抽出するのであればこうなります。
Range(“データ範囲”).AutoFilter field:=列, Criteria1:=”>=100″
100以上かつ200以下といった二つの条件を組み合わせるときは、Criteria2に二つ目の条件式を指定します。
Range(“データ範囲”).AutoFilter field:=列, _
Criteria1:=”>=100″, Operator:=xlAnd, Criteria2:=”<=200″
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を省略しても動きますが、指定しないと意図しない動作に繋がってしまいます。
これくらい簡単なコード内ならば問題ありませんが、複雑なコードや後の保守性を考えると、
書いておく方が無難です。読み手にも親切ですね。
コメント