方法: 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)