この記事では、【Excel】VBAマクロでフィルタを複数条件(3つ以上も:複数列:AND、OR、以外・除外・含まないなど)で設定・かける方法について解説していきます。
ポイントとしては
`AutoFilter`メソッド、
`Criteria1`、
`Operator`
の使用です。
初心者の方でも理解しやすいように、変数名をわかりやすい日本語ローマ字表記で示しています。
それでは詳しく見ていきましょう!」
VBAマクロでフィルタを複数条件(3つ以上も:複数列)で設定・かける方法【B列の文字列がマントヒヒ、C列の数値が10以上15以下、D列がロバに一致でAND条件】
それではまず、複数の列にまたがる複数条件のANDフィルタ設定について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub FurutaSetteiAND()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
' B列がマントヒヒ、C列が10以上15以下、D列がロバに一致するデータをフィルタする
ws.Range("A1:D100").AutoFilter Field:=2, Criteria1:="マントヒヒ"
ws.Range("A1:D100").AutoFilter Field:=3, Criteria1:=">=10", Operator:=xlAnd, Criteria2:="<=15"
ws.Range("A1:D100").AutoFilter Field:=4, Criteria1:="ロバ"
End Sub
コードのAlt+F8を押し、マクロ選択画面でFurutaSetteiAND関数を実行します。
このコードでは、まずWorksheetオブジェクトを設定し、その後AutoFilterメソッドを使用して複数の条件を設定しています。
各条件は`Field`パラメータを使って指定された列に適用され、`Criteria1`と`Criteria2`で具体的な条件を設定しています。
この例では、B列に文字列の「マントヒヒ」が含まれ、C列の値が10以上15以下、そしてD列に「ロバ」が含まれるデータのみを表示するフィルタを設定しています。
VBAマクロでフィルタを複数条件(複数列:除外・以外)で設定・かける方法【B列の文字列がマウンテンゴリラ、もしくはD列がシマウマをOR条件、これを除外したフィルタ】
「続いては、複数の列にまたがる除外条件を使用したフィルタ設定について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub FurutaSetteiJOGAIOR()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
' B列のマウンテンゴリラまたはD列のシマウマを除外するフィルタを設定
ws.Range("A1:D100").AutoFilter
ws.Range("A1:D100").AutoFilter Field:=2, Criteria1:="<>マウンテンゴリラ"
ws.Range("A1:D100").AutoFilter Field:=4, Criteria1:="<>シマウマ", Operator:=xlFilterValues
End Sub
このコードでは、B列で「マウンテンゴリラ」を除外し、さらにD列で「シマウマ」を除外するフィルタを設定しています。`Operator:=xlFilterValues` を使用することで、これらの条件をOR条件として扱い、どちらか一方の条件に当てはまる行を除外します。
この方法により、B列に「マウンテンゴリラ」が含まれているか、またはD列に「シマウマ」が含まれている行をフィルタから除外することができます。
`Criteria1`に”<>値”の形式を用いることで、以外、除外の処理をしていますね。
まとめ VBAマクロでフィルタを複数条件(AND、OR、以外・除外・含まない、3つ以上も:複数列:など)で設定・かける方法
ここでは、VBAマクロでフィルタを複数条件(3つ以上も:複数列:AND、OR、以外・除外・含まないなど)で設定・かける方法について確認しました。
マクロをマスターしてさらに快適な生活を送っていきましょう!!