次の方法で共有


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 のサポートおよびフィードバックを参照してください。