If文は、条件によって処理を実行する場合に使用します。If~の後に条件式を入れ、条件式を満たす場合にThen以降の処理が実行されます。条件式を満たさない場合Then以降の処理は実行されません。
If 条件式 Then
条件式を満たした場合に処理される
End If
以下の例ではi=5で10以下なのでThen以降の処理が実行されます。
Sub Sample()
Dim i As Integer
i = 5
If i < 10 Then
Msgbox "iの値は10以下です。"
End If
End Sub
条件式を満たした場合と条件式を満たさなかった場合に処理を分岐させて処理を実行させる場合にはElse文を使用します。
If 条件式 Then
条件式を満たした場合に処理される
Else
条件式を満たしていない場合に処理される
End If
条件式で値を比較する場合には以下の演算子を使用します。
演算子 | 意味 |
---|---|
a = b | a と b は等しい |
a < b | a は b より小さい |
a <= b | a は b 以下 |
a > b | a は b より大きい |
a >= b | a は b 以上 |
a <> b | a と b は等しくない |
例ではi=30でiは10以上なのでElse文以降の処理が実行されます。
Sub Sample()
Dim i As Integer
i = 30
If i < 10 Then
Msgbox "iの値は10以上です。"
Else
Msgbox "iの値は10未満です。"
End If
End Sub
複数の条件により処理を分岐させたい場合はElseIf文を使用して処理を分岐させます。
If 条件式1 Then
条件式1を満たした場合に処理される
ElseIf 条件式2 Then
条件式2を満たした場合に処理される
Else
条件式1、条件式2を満たしていない場合に処理される
End If
例ではi=15でiは10以上20未満なのでElseIf文以降の処理が実行されます。
Sub Sample()
Dim i As Integer
i = 15
If i < 10 Then
Msgbox "iの値は10未満です。"
ElseIf i < 20 Then
Msgbox "iの値は10以上20未満です。"
Else
Msgbox "iの値は20以上です。"
End If
End Sub
条件式では論理演算子を使用することができます。
演算子 | 意味 |
---|---|
Not 条件式 | 条件式が真でない場合、真となる |
条件式1 And 条件式2 | 条件式1と条件式2の両方とも真の場合、真となる |
条件式1 Or 条件式2 | 条件式1と条件式2のどちらかが真の場合、真となる |
例ではAnd論理演算子を使用してiの値が1以上10未満の値であるかを判別します。
Sub Sample()
Dim i As Integer
i = 5
If i > 0 And i < 10 Then
Msgbox "iの値は1以上10未満の値です。"
End If
End Sub