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