If...Then...Else ステートメントを使用する

If...Then...Else ステートメントを使用すると、条件の値に応じて、特定のステートメントやステートメントのブロックを実行できます。 If...Then...Else ステートメントは、必要なレベルでネストできます。

ただし、読みやすくするために、複数レベルでネストされた If...Then...Else ステートメントではなく、Select Case ステートメントを使用することもできます。

条件が True のときにステートメントを実行する

条件が True のときにステートメントを 1 つだけ実行するには、1 行の構文の If...Then...Else ステートメントを使用します。 次の例は、 Elseキーワードを省略した 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 のサポートおよびフィードバックを参照してください。