Vba: if or を使用して複数の条件をテストする
VBA で次の基本構文を IF および OR とともに使用すると、複数の条件が満たされるかどうかをテストできます。
Sub IfOrTest()
If Range(" A2 ") = "Warriors" Or Range(" B2 ") > 100 Then
Range(" C2 ").Value = " Yes! "
Else
Range(" C2 ").Value = " No. "
End If
End Sub
この特定の例では、セルA2の値が「Warriors」と等しいかどうか、またはセルB2の値が 100 より大きいかどうかを確認します。
いずれかの条件が満たされると、値「Yes!」が返されます。 » がセルC2に返されます。
それ以外の場合は、値「いいえ」。セルC2に返されます。
次の例は、この構文を実際に使用する方法を示しています。
関連: VBA: IF AND を使用して複数の条件をテストする
例: IF AND を使用して VBA で複数の条件をテストする
Excel に次のデータがあるとします。
チーム名がウォリアーズかどうか、またはポイント値が 100 より大きいかどうかを判断し、結果をセルC2に返したいとします。
これを行うには、次のマクロを作成できます。
Sub IfOrTest()
If Range(" A2 ") = "Warriors" Or Range(" B2 ") > 100 Then
Range(" C2 ").Value = " Yes! "
Else
Range(" C2 ").Value = " No. "
End If
End Sub
このマクロを実行すると、次の出力が表示されます。
マクロは値「Yes!」を正しく返します。 » 少なくとも 1 つの条件が満たされたため、セルC2に表示されます。
セルA2のポイントの値を変更してマクロを再度実行すると、新しい値に対して両方の条件が満たされるかどうかがテストされます。
たとえば、チーム名を「Rockets」に変更し、マクロを再度実行するとします。
マクロは値「No」を正しく返します。どちらの条件も満たされなかったため、セルC2にあります。
結果をメッセージ ボックスに表示したい場合は、次の構文を使用できます。
Sub IfOrTest()
If Range(" A2 ") = "Warriors" Or Range(" B2 ") > 100 Then
MsgBox “ Yes! ”
Else
MsgBox “ No. ”
End If
End Sub
このマクロを実行すると、次の出力が表示されます。
メッセージ ボックスは「いいえ」を返します。どちらの条件も満たされていなかったためです。
注: この例では、マクロ内で 2 つの条件が真かどうかをテストするために Or演算子を 1 回だけ使用しましたが、3 つ以上の条件が満たされるかどうかをテストするには、必要な数の Or 演算子を使用できます。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。
VBA:VLOOKUPの使い方
VBA: 文字列内の文字の出現を数える方法
VBA: 文字列に別の文字列が含まれているかどうかを確認する方法