実行中の処理を途中で抜ける場合Exitステートメントを使用します。
Exit Do
Exit For
Exit Function
Exit Property
Exit Sub
Do~Loopステートメントを処理途中で抜け次のステートメントに制御を移します。以下の例では変数iの値が10になったときにDo~Loopを抜けます。
Sub ExitDo()
Dim i As Integer
i = 1
Worksheets("Sheet8").Activate
Do
Worksheets("Sheet8").Cells(i, 1) = i
i = i + 1
If i = 10 Then
Exit Do
End If
Loop
End Sub
For~Nextステートメントを処理途中で抜け次のステートメントに制御を移します。
Sub ExitFor()
Dim i As Integer
Worksheets("Sheet8").Activate
For i = 1 To 100
Worksheets("Sheet8").Cells(i, 1) = i
If i = 10 Then
Exit For
End If
Next
End Sub
Subプロシージャを処理途中で抜け、制御はSub プロシージャを呼び出した次のステートメントに制御を移します。
Private Sub Test()
Call ExitSub
MsgBox ("Exit Subのテスト3")
End Sub
Sub ExitSub()
MsgBox ("Exit Subのテスト1")
Exit Sub
MsgBox ("Exit Subのテスト2")'このステートメントは実行されない
End Sub
Functionプロシージャを処理途中で抜け、制御はFunction プロシージャを呼び出した次のステートメントに制御を移します。
Private Sub Test()
Call ExitFunction
End Sub
MsgBox ("Exit Functionのテスト3")
Function ExitFunction()
MsgBox ("Exit Functionのテスト1")
Exit Function
MsgBox ("Exit Functionのテスト2")'このステートメントは実行されない
End Function