Share via


方法 : 1 つ以上の条件に基づいて、ステートメントを実行する

更新 : 2007 年 11 月

If...Then...Else ステートメント (Visual Basic) を使うと、条件の ブール型 (Boolean) (Visual Basic) 値に基づいて特定のステートメントまたはステートメント ブロックを実行できます。条件は、通常、2 つの値の比較によって判断されますが、Boolean 値 (True または False) として評価できる式の場合どのような式でも指定できます。指定できる値には、数値型などのその他のデータ型を Boolean に変換した値も含まれます。

条件が True である場合に、1 つ以上のステートメントを実行する

  • 実行するステートメントが 1 つだけある場合、If...Then...Else 構造の単一行の構文を使用します。Else または End If ステートメントは必要ありません。次に例を示します。

    Sub fixDate()
        Dim myDate As Date = #2/13/1973#
        If myDate < Now Then myDate = Now
    End Sub
    

    または

  • 条件が True の場合に実行するコードが複数行にわたる場合は、End If ステートメントを含む複数行の構文を使用します。条件が False のときに実行するコードがない場合、Else ステートメントを省略します。次に例を示します。

    Dim alertLabel As New System.Windows.Forms.Label
    Sub alertUser(ByVal value As Long)
        If value = 0 Then
            alertLabel.ForeColor = System.Drawing.Color.Red
            alertLabel.Font = New Font(alertLabel.Font, _
                FontStyle.Bold Or FontStyle.Italic)
        End If
    End Sub
    

条件が True である場合にいくつかのステートメントを実行し、False の場合に他を実行する

  • Else (Visual Basic) ステートメントと共に If...Then...Else 構造を使用して、ステートメントの 2 つのブロックを定義します。条件が True である場合に、あるブロックが Visual Basic によって実行され、False である場合に、他のブロックが実行されます。次に例を示します。

    Dim alertLabel As New System.Windows.Forms.Label
    Sub alertUser(ByVal value As Long)
        If value = 0 Then
            alertLabel.ForeColor = System.Drawing.Color.Red
            alertLabel.Font = New Font(alertLabel.Font, _
                FontStyle.Bold Or FontStyle.Italic)
        Else
            alertLabel.Forecolor = System.Drawing.Color.Black
            alertLabel.Font = New Font(alertLabel.Font, _
                FontStyle.Regular)
        End If
    End Sub
    

最初の条件が False である場合に、追加の条件をテストする

  • 1 つ以上の ElseIf (Visual Basic) ステートメントと共に If...Then...Else 構造を使用して、最初の条件が False である場合に、追加の条件をテストします。次の例では、Function プロシージャは、業績評価に基づいて従業員のボーナスを計算します。If ステートメントおよび ElseIf ステートメントの条件が、すべて False である場合だけ、Else ステートメントの後で、ステートメント ブロックが実行されます。

    Function bonus(ByVal performance As Integer, ByVal salary As Decimal) _
        As Decimal
        If performance = 1 Then
            Return salary * 0.1
        ElseIf performance = 2 Then
            Return salary * 0.09
        ElseIf performance = 3 Then
            Return salary * 0.07
        Else
            Return 0
        End If
    End Function
    

    If...Then...Else ステートメントに表示される順序で、Visual Basic によって条件がテストされます。True 条件または Else ステートメントがあると、対応するステートメント ブロックが実行されます。その後、End If ステートメントの後のステートメントに、コントロールが渡されます。

    ElseIf ステートメントは、必要に応じていくつでも追加できます。また、省略することもできます。Else ステートメントは、ElseIf ステートメントがあるかどうかに関係なく、含めることも省略することもできます。

参照

処理手順

方法 : 制御構造から制御を移す

方法 : 式を複数の値と比較する

方法 : エラー発生時に制御を継続する

概念

条件判断構造

ループ構造

その他の制御構造

入れ子になった制御構造

その他の技術情報

Visual Basic における制御フロー