次の方法で共有


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

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 の場合に他を実行する

  • ステートメントの 2 つのブロックを定義するには、If...Then...Else 構造を Else ステートメント (Visual Basic) ステートメントと共に使用します。 Visual Basic は、条件が True の場合に一方のブロックを実行し、条件が 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 ステートメントと共に 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)

方法: 式を複数の値と比較する (Visual Basic)

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

概念

条件判断構造 (Visual Basic)

ループ構造 (Visual Basic)

その他の制御構造 (Visual Basic)

入れ子になった制御構造 (Visual Basic)

その他の技術情報

Visual Basic における制御フロー