この記事では、VBAマクロのif関数で複数条件を処理する方法について解説していきます。ポイントとしては、**And関数**、**Or関数**、**Not関数**を使用することです。
なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。
そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。
それでは詳しく見ていきましょう!
VBAマクロのif関数で複数条件(or3つ)で処理する方法【And、Or、Not関数使用】
それではまず、VBAマクロのif関数で複数条件(or3つ)で処理する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub SanjoHantei()
Dim hyou As Range
Dim i As Long
Dim lastRow As Long
'サンプルデータがあるシートを指定
Set hyou = ThisWorkbook.Worksheets("Sheet1").Range("A2:C1000")
'最終行を取得
lastRow = hyou.Rows.Count
'各行を確認して条件に合わせて処理
For i = 1 To lastRow
If hyou.Cells(i, 1).Value = "ok" Or _
(hyou.Cells(i, 2).Value >= 10 And hyou.Cells(i, 2).Value < 20) Or _
Not hyou.Cells(i, 3).Value = "d" Then
'条件に一致した行のD列に"該当"と記入
hyou.Cells(i, 4).Value = "該当"
End If
Next i
End Sub
コードのAlt+F8を押し、マクロ選択画面でSanjoHantei関数を実行します。
このコードでは、A列が”ok”と一致、B列が10以上20未満、C列が記号”d”以外のいずれかの条件に一致する行を見つけて、その行のD列に”該当”という文字を記載しています。
—
VBAマクロのif関数で複数条件(or4つ)で処理する方法【And、Or関数使用】
続いては、VBAマクロのif関数で複数条件(or4つ)で処理する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub YonjoHantei()
Dim hyou As Range
Dim i As Long
Dim lastRow As Long
'サンプルデータがあるシートを指定
Set hyou = ThisWorkbook.Worksheets("Sheet1").Range("A2:E1000")
'最終行を取得
lastRow = hyou.Rows.Count
'各行を確認して条件に合わせて処理
For i = 1 To lastRow
If hyou.Cells(i, 1).Value = "ok" Or _
(hyou.Cells(i, 2).Value >= 10 And hyou.Cells(i, 2).Value < 20) Or _
Not hyou.Cells(i, 3).Value = "d" Or _
hyou.Cells(i, 4).Value = "yes" Then
'条件に一致した行のF列に"該当"と記入
hyou.Cells(i, 6).Value = "該当"
End If
Next i
End Sub
コードのAlt+F8を押し、マクロ選択画面でYonjoHantei関数を実行します。
このコードでは、A列が”ok”と一致、B列が10以上20未満、C列が記号”d”以外、そしてD列が”yes”と一致するいずれかの条件に一致する行を見つけて、その行のF列に”該当”という文字を記載しています。
まとめ
ここまでの解説で、VBAマクロのif関数で複数の条件を組み合わせる方法を学びました。
初心者の方でも、上記のステップに沿って試してみれば、きっと理解しやすいと思います。