If...Then...Else ステートメントを使用する
If...Then...Else ステートメントを使用すると、条件の値に応じて、特定のステートメントやステートメントのブロックを実行できます。 If...Then...Else ステートメントは、必要なレベルでネストできます。
ただし、読みやすくするために、複数レベルでネストされた If...Then...Else ステートメントではなく、Select Case ステートメントを使用することもできます。
条件が True のときにステートメントを実行する
条件が True のときにステートメントを 1 つだけ実行するには、1 行の構文の If...Then...Else ステートメントを使用します。 次の例は、Elseキーワード (keyword) を省略した 1 行構文を示しています。
Sub FixDate()
myDate = #2/13/95#
If myDate < Now Then myDate = Now
End Sub
複数行のコードを実行するには、複数行の構文を使用する必要があります。 この構文には、次の例のように、End If ステートメントが含まれます。
Sub AlertUser(value as Long)
If value = 0 Then
AlertLabel.ForeColor = "Red"
AlertLabel.Font.Bold = True
AlertLabel.Font.Italic = True
End If
End Sub
条件が True のときに特定のステートメントを実行し、条件が False のときに別のステートメントを実行する
If...Then...Else ステートメントを使用して、実行可能なステートメントの 2 つのブロックを定義できます。1 つのブロックは条件が True のときに実行され、もう 1 つのブロックは条件が False のときに実行されます。
Sub AlertUser(value as Long)
If value = 0 Then
AlertLabel.ForeColor = vbRed
AlertLabel.Font.Bold = True
AlertLabel.Font.Italic = True
Else
AlertLabel.Forecolor = vbBlack
AlertLabel.Font.Bold = False
AlertLabel.Font.Italic = False
End If
End Sub
最初の条件が False のときに 2 番目の条件を検証する
ElseIf ステートメントを If...Then...Else ステートメントに追加して、最初の条件が False の場合に 2 番目の条件を検証できます。 たとえば、次の関数プロシージャでは、職階に基づいてボーナスが計算されます。 If および ElseIf ステートメントのすべての条件が False の場合は、Else ステートメントに続くステートメントが実行されます。
Function Bonus(performance, salary)
If performance = 1 Then
Bonus = salary * 0.1
ElseIf performance = 2 Then
Bonus = salary * 0.09
ElseIf performance = 3 Then
Bonus = salary * 0.07
Else
Bonus = 0
End If
End Function
関連項目
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。