Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » VBAでOr条件を3つ以上複数指定する

VBAでOr条件を3つ以上複数指定する

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「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」と表示されます。

Sub If文でOr条件を3つ()
 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
の行が長くて読み辛いですから、「 _」(スペースとアンダーバー)を入れて、改行しておくほうがいいでしょう。

Sub If文でOr条件を3つ_改行あり()
 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文にするほうが、もっと可読性が上がります。

Sub SelectCase文でOr条件()
 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つ以上複数指定する

「条件分岐」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.