Return to VBA Code Examples

VBA Exit SubおよびFunction

VBAでは、SubやFunctionを終了させるのに Exit SubまたはExit Functionコマンドを使用します。

Exit Sub
Exit Function

コードの実行がExit Sub または Exit Functionに到達すると、SubまたはFunctionを終了して、他のコードの実行を継続します。

エラー時にSubを終了させる方法を知りたい方は、こちらのリンクをクリックしてください:VBA エラー時にSubを終了する

コード実行全体を終了させる方法を知りたい方は、このリンクをクリックしてください:VBA 全体を終了する

VBAでSubプロシージャを終了させる

この例では、Subの中でExit Subコマンドを使用するとどうなるかを説明します。ExitSubというSubを作成し、その中にExit Subコマンドを記述しています。CallExitSubという SubがこのSubを呼び出します。以下がそのコードです。

Private Sub ExitSub()

    Dim i As Integer

    For i = 1 To 10  
        If i = 5 Then
            Exit Sub
            MsgBox "iの値は" & i
        End If
    Next i 

End Sub


Private Sub CallExitSub()
    Call ExitSub
    MsgBox "Subを終了します"  
End Sub

ExitSubでは、まずiの値が10以下の場合にForループに入ります。

For i = 1 To 10

Next i

その後、iの値が5であるかどうかをIfコマンドでチェックします。値が5であれば、Subを終了して、iの値を表示したメッセージボックスを表示します。

If i = 5 Then
     Exit Sub
     MsgBox "iの値は" & i
End If

条件を満たさない場合は、次の文でiを1つ増やし、再びForループに入ります。

Next i

CallExitSubでは、まずSub ExitSubを呼び出します。

Call ExitSub

その後、メッセージボックスを返します。

MsgBox "Subを終了します"

CallExitSubを実行すると、最初にExitSubが呼び出されます。このコードをデバッグモードで実行すると、ループを5回通過することがわかります。5回目の繰り返しで、変数iの値が5になり、Ifステートメントの中にコードが入ります。これで、Sub ExitSubが終了してCallExitSubに戻りました。次に実行される行は、MsgBox “Exit Sub” です。

vba exit sub

このように、ExitSubは Exit Sub コマンドの直後に終了するので、MsgBox “iの値は”  & iは実行されないことになります。

VBAで関数を終了させる

VBAの関数の終了は、Subの終了と似ていますが、コマンドがExit Functionであることが特徴です。この例では、整数を返すExitFuncを作成しました。Sub CallExitFunctionは 、この関数を呼び出します以下はそのコードです。

Private Function ExitFunc() As Integer

    Dim i As Integer

    For i = 1 To 10
        If i = 5 Then
            ExitFunc = i
            Exit Function
        End If
    Next i

End Function


Private Sub CallExitFunction()
    Dim intFunc As Integer
    intFunc = ExitFunction()
    MsgBox "intFuncの値は" & intFunc

End Sub

ExitFuncでは、まずiの値が10以下の場合にForループに入ります。

For i = 1 To 10

Next i

その後、iの値が5と等しいかどうかをIfコマンドでチェックします。もし値が5であれば、iの値を関数resultに代入し、関数を終了します。

If i = 5 Then
    ExitFunc = i
    Exit Function
End If

条件を満たさない場合は、次の文でiを1つ増やし、再びForループに入ります。

Next i

CallExitFunctionでは、まずExitFuncという関数を呼び出します。そのために、変数intFuncをinteger型で宣言し、ExitFunc関数の結果を代入する必要があります。

Dim intFunc As Integer

intFunc = ExitFunction()

その後、intFunc の値をメッセージボックスに返します。

MsgBox "intFuncの値は" & intFunc

CallExitFunctionを実行すると、まずExitFuncという関数が呼び出されます。このコードをデバッグモードで実行すると、ループを5回通過することがわかります。5回目の繰り返しで、変数iの値が5になり、Ifステートメントの中にコードが入ります。ここでExitFuncの値がiになり、関数が終了してCallExitFunctionに戻ります。次に実行される行は、MsgBox “The value of intFunc is ” & intFunc です。

vba exit function

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples