VBA エラー発生時のExit Sub

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 4月 22, 2022

VBAでは、エラーが発生したときにSubを終了するようにコードをプログラムすることができます。そのためには、On Error GoToと Exit Subを使用します。

On Error GoToは エラーが発生したときに、コードの特定のセクションに「移動」するようにVBAに指示します。

On Error GoTo ErrorHandler

そのセクションから、VBAにExit Subを指示して、サブプロシージャを終了させることができます。

ErrorHandler:
End Sub

このコードを実際に見てみましょう。

VBAでエラー発生時にサブプロシージャを終了させる

この例では、ゼロで割ることでエラーを発生させることにします。

i = 5 / 0

以下のコード全体を見てください。 VBAがエラーを読み取ると、コードのErrorHandlerセクションに “goto “して終了します。

Sub TestError ()
Dim i As Integer

On Error GoTo ErrorHandler

i = 5 / 0

'iを使う処理
MsgBox i

Exit Sub
ErrorHandler:
    MsgBox "エラーが発生したのでSubを終了します"
    Exit Sub
End Sub

エラー処理を指定するには、まず、On Error GoToステートメントを宣言する必要があります。これは、Subの最初に宣言する必要があります。

On Error GoTo ErrorHandler

その後、エラー処理コードを宣言する必要があります。これは通常、コードの最後にあります。

ErrorHandler:
    MsgBox "エラーが発生したのでSubを終了します"
    Exit Sub

ErrorHandlerの上にExit Subを追加しているのは、エラーが発生したときだけErrorHandlerのコードを実行したいからです。

Exit Sub
ErrorHandler:
    MsgBox "エラーが発生したのでSubを終了します" 
    Exit Sub
End Sub

このSubを実行すると、ゼロによる除算のためエラーになります。このとき、エラー処理コードが実行されます。メッセージボックスが表示され、Subは終了します。

vba on error exit sub エラー

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

SubやFunctionを終了する方法を知りたい場合は、このリンクをクリックしてください: VBA サブまたは関数を終了する

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