VBA End
VBAでは、すべてのコードの実行を終了するのに Endコマンドを使用します。
End
コードの実行がEndに到達すると、直ちに実行を終了してプログラムから離脱します。
エラー時のSubの終了方法を知りたい方は、こちらのリンクをクリックしてください:VBA On Error Exit Sub
SubやFunctionを終了させる方法を知りたい方は、このリンクをクリックしてください:VBA Exit Sub or Function
VBAですべてのコードを終了させる
VBAでEndコマンドを使用するとどうなるかを例で見てみましょう。EndSubというSubを作成し、その中にEndコマンドを記述します。このSubは、CallEndSubから呼び出されます。以下は、そのコードです。
Private Sub EndSub()
Dim i As Integer
For i = 1 To 10
If i = 5 Then
MsgBox "The value of i is " & i
End
End If
Next i
End Sub
Private Sub CallEndSub()
EndSubを呼び出す
MsgBox "End Sub"
End Sub
EndSubでは、まずiの値が10以下であればForループに入ります。
For i = 1 To 10
Next i
その後、iの値が5であるかどうかをIfコマンドでチェックする。もし値が5なら、iの値でメッセージボックスを返し、Endコマンドを使用します。
If i = 5 Then
MsgBox "The value of i is " & i
End
End If
条件を満たさない場合は、次の文でiを1つ増やし、再びForループに入ります。
Next i
CallEndSubでは、まず、SubEndSubを呼び出します。
Call EndSub
その後、メッセージボックスに出力します。
MsgBox "End Sub"
CallEndSubを実行すると、最初にEndSubが呼び出されます。このコードをデバッグモードで実行すると、ループが5回繰り返されることがわかります。5回目の繰り返しで、変数iの値が5となり、Ifボディにコードが入る。ここで、MsgBox “The value of i is ” & iが実行され、その後にEndとなります。
画像1.VBAの終了
見ての通り、Endコマンドの直後にコードの実行が停止しているので、MsgBox “End Sub” が実行されることはありません。