「excel vba if or 複数」
「エクセル vba if or 3つ」
「vba or条件 3つ以上」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
VBA(Visual Basic for Appliations)の条件分岐で、Or条件を3つ以上の複数指定するには、どのような書き方をすればいいのかを探していた方による検索キーワードです。
Or条件3つのIf文を含むサンプルマクロ
以下のマクロを実行すると、A1セルの値が、「Pen」または「Apple」または「Pineapple」だったときに、「PPAP !!」というメッセージが、そうでなかったときに「Not PPAP」と表示されます。
If Range("A1").Value = "Pen" Or Range("A1").Value = "Apple" Or Range("A1").Value = "Pineapple" Then
MsgBox "PPAP !!"
Else
MsgBox "Not PPAP"
End If
End Sub
VBAのIf文でOr条件は、Or演算子の前後ともに論理式を書けばいいので、
Range("A1").Value = "Pen"
Range("A1").Value = "Apple"
Range("A1").Value = "PineApple"
という条件をOr演算子でつなげればOKです。
Or条件3つのIf文に改行を入れる
上記のコードは、
If Range("A1").Value = "Pen" Or Range("A1").Value = "Apple" Or Range("A1").Value = "Pineapple" Then
の行が長くて読み辛いですから、「 _」(スペースとアンダーバー)を入れて、改行しておくほうがいいでしょう。
If _
Range("A1").Value = "Pen" Or _
Range("A1").Value = "Apple" Or _
Range("A1").Value = "PineApple" Then
MsgBox "PPAP !!"
Else
MsgBox "Not PPAP"
End If
End Sub
Select Case文でOr条件
更に、上記の例であれば、If文を使うよりも、Select Case文にするほうが、もっと可読性が上がります。
Select Case Range("A1").Value
Case "Pen", "Apple", "Pineapple"
MsgBox "PPAP !!"
Case Else
MsgBox "Not PPAP"
End Select
End Sub
Case文に「,」(カンマ)で区切って値を書いておけばOr条件になりますから、以上のようなコードで先のIf文を使ったマクロと同じ結果になります。
Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » VBAでOr条件を3つ以上複数指定する