サイトについて      連絡先   検索

VBA If 文

はじめに

Excel VBA マクロの If 文を使用して処理を分岐する方法を紹介します。

条件に一致するとき (Then) や、しないとき (Else) だけ処理を実行できます。

ElseIf で複数の分岐にしたり And や Or を使用して複数の条件を指定できます。

  • 目次
    • If Then Else
    • 条件を入力する
    • 複数の条件を指定する

If Then Else

Then

条件を満たすときだけ処理を実行します。

If 条件 Thenのように入力し、改行してEnd Ifを入力します。条件を満たすときだけ If の中の処理が実行されます。そうでないときは、その処理は行われません。


If 0 = 0 Then
    Debug.Print ("True") ' True、条件を満たしているとき
End If

Else

条件が満たされないときだけ処理を実行します。

If 文の中にElseのように入力します。条件が満たされないときに Else の中の処理が実行されます。


If 0 = 1 Then
    Debug.Print ("True")  ' True、条件を満たしているとき
Else
    Debug.Print ("False") ' False、条件を満たしていないとき
End If

この Then と Else が If 文の基本的な形です。分岐を増やすには ElseIf を使います。

ElseIf

If 文の分岐を増やせます。

If 文の中にElseIf 条件 Thenのように入力します。Then の条件が満たされないときで、この条件を満たすときに ElseIf の中の処理が実行されます。


Dim i As Integer
i = 2

If i = 0 Then
    Debug.Print ("0")    ' 0、条件を満たしているとき
ElseIf i = 1 Then
    Debug.Print ("1")    ' 1、上の条件が満たされないで、この条件を満たしているとき
ElseIf i = 2 Then
    Debug.Print ("2")    ' 2、上の条件が満たされないで、この条件を満たしているとき
Else
    Debug.Print ("Else") ' Else、すべての条件を満たしていないとき
End If

Elseif を入力した数だけ分岐を増やせます。「Select 文」を使用すると、簡単に分岐を増やせます。

条件を入力する

条件には Boolean の値を指定します。True が条件を満たすことで、False は満たしていないことを表します。

比較演算子を使用して、変数の値が「等しい」や「より大きい」などを条件にできます。

演算子 演算名 使用例 結果
=等しい1 = 2False
<>等しくない1 <> 2True
>大きい1 > 2False
<小さい1 < 2True
>=以上1 >= 2False
<=以下1 <= 2True

Dim i As Integer

i = 0
If i = 0 Then
    Debug.Print ("等しい")
End If

i = 1
If i > 0 Then
    Debug.Print ("より大きい")
End If

i = 0
If i < 1 Then
    Debug.Print ("より小さい")
End If

複数の条件を指定する

条件が複数あるときは And や Or などの論理演算子を使用して条件を増やせます。

演算子 演算名 使用例 結果
And論理積True And True
True And False
False And False
True
False
False
Or論理和True Or True
True Or False
False Or False
True
True
False
Not論理否定Not True
Not False
False
True
Xor排他的論理和True Xor True
True Xor False
False Xor False
False
True
False

すべての条件を満たしているか判定するには条件 And 条件のように入力します。

どれか 1 つでも条件を満たしているか判定するには条件 Or 条件のように入力します。


Dim i As Integer
i = 0

Dim s As String
s = "Tips"

If i = 0 And s = "Tips" Then
    Debug.Print ("And") ' And、i が 0「かつ」s が "Tips" のとき
End If
       
If i = 0 Or s = "Tips" Then
    Debug.Print ("Or") ' Or、i が 0「または」s が "Tips" のとき
End If

And や Or を組み合わせて 3 つ以上の条件を判定できます。

比較するときは条件を()で囲むと見やすくなります。また演算子の優先順位も指定できます。


If (i = 0) Then

End If

If (i = 0) And (s = "Tips") Then

End If
  • 目次
    • If Then Else
    • 条件を入力する
    • 複数の条件を指定する