Exit ステートメント (Visual Basic)

プロシージャまたはブロックを終了し、そのプロシージャ呼び出しまたはブロック定義の次のステートメントに即座に制御を移します。

Exit { Do | For | Function | Property | Select | Sub | Try | While }

ステートメント

  • Exit Do
    このステートメントのある Do ループを直ちに抜けます。Loop ステートメントの後ろのステートメントから実行が継続されます。Exit Do が使用できるのは Do ループの中だけです。入れ子構造になっている Do ループの中で使用すると、Exit Do は内側のループを抜け、入れ子構造の 1 つ外側のレベルに制御を移します。

  • Exit For
    このステートメントのある For ループを直ちに抜けます。Next ステートメントの後ろのステートメントから実行が継続されます。Exit For が使用できるのは For...Next ループまたは For Each...Next ループの中だけです。入れ子構造になっている For ループの中で使用すると、Exit For は内側のループを抜け、入れ子構造の 1 つ外側のレベルに制御を移します。

  • Exit Function
    このステートメントのある Function プロシージャを直ちに抜けます。Function プロシージャを呼び出したステートメントの後ろのステートメントから実行が継続されます。Exit Function が使用できるのは Function プロシージャの中だけです。

    戻り値を指定するには、Exit Function ステートメントより前の行で関数名に値を割り当てます。1 つのステートメントで戻り値を割り当てて関数を抜けるには、Return ステートメント (Visual Basic) を使用します。

  • Exit Property
    このステートメントのある Property プロシージャを直ちに抜けます。Property プロシージャを呼び出したステートメント、つまりプロパティの値を要求または設定しているステートメントから実行が継続されます。Exit Property が使用できるのは、プロパティの Get プロシージャまたは Set プロシージャの中だけです。

    Get プロシージャで戻り値を指定するには、Exit Property ステートメントより前の行で関数名に値を割り当てます。1 つのステートメントで戻り値を割り当てて Get プロシージャを抜けるには、Return ステートメントを使用します。

    Set プロシージャでは、Exit Property ステートメントと Return ステートメントは同等です。

  • Exit Select
    このステートメントのある Select Case を直ちに抜けます。End Select ステートメントの後ろのステートメントから実行が継続されます。Exit Select が使用できるのは Select Case ステートメントの中だけです。

  • Exit Sub
    このステートメントのある Sub プロシージャを直ちに抜けます。Sub プロシージャを呼び出したステートメントの後ろのステートメントから実行が継続されます。Exit Sub が使用できるのは Sub プロシージャの中だけです。

    Sub プロシージャでは、Exit Sub ステートメントと Return ステートメントは同等です。

  • Exit Try
    このステートメントのある Try ブロックまたは Catch ブロックを直ちに抜けます。Finally ブロックが 1 つ存在する場合はそこから、そうでない場合は End Try ステートメントの後ろのステートメントから実行を継続します。Exit Try が使用できるのは Try ブロックまたは Catch ブロックの中だけです。Finally ブロックの中では使用できません。

  • Exit While
    このステートメントのある While ループを直ちに抜けます。End While ステートメントの後ろのステートメントから実行が継続されます。Exit While が使用できるのは While ループの中だけです。While ループが入れ子構造になっている場合、Exit While のあるループの 1 つ外側のループに制御が移ります。

解説

この Exit ステートメントと End ステートメントを混同しないでください。Exit はステートメントの終了を定義するステートメントではありません。

使用例

次の例では、index 変数が 100 を上回ったときに、ループ条件によってループが停止されます。ただし、ループ内の If ステートメントにより、index 変数が 10 を上回ったときに、Exit Do ステートメントによってループが停止されます。

Dim index As Integer = 0
Do While index <= 100
    If index > 10 Then
        Exit Do
    End If

    Debug.Write(index.ToString & " ")
    index += 1
Loop

Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10 

戻り値を myFunction という名前の関数に割り当てて、Exit Function を使って関数から戻すコード例を次に示します。

Function myFunction(ByVal j As Integer) As Double
    myFunction = 3.87 * j
    Exit Function
End Function

Return ステートメント (Visual Basic) を使用して戻り値を割り当てて、関数を抜けるコード例を次に示します。

Function myFunction(ByVal j As Integer) As Double
    Return 3.87 * j
End Function

参照

関連項目

Continue ステートメント (Visual Basic)

Do...Loop ステートメント (Visual Basic)

End ステートメント

For Each...Next ステートメント (Visual Basic)

For...Next ステートメント (Visual Basic)

Function ステートメント (Visual Basic)

Return ステートメント (Visual Basic)

Stop ステートメント (Visual Basic)

Sub ステートメント (Visual Basic)

Try...Catch...Finally ステートメント (Visual Basic)