On Error GoTo ... Resume Statement

エラー発生時のエラーハンドリング用ルーチンおよび、プログラムの実行再開を指定します。

構文:

On {[Local] Error GoTo Labelname | GoTo 0 | Resume Next}

パラメーター:

GoTo Labelname: エラーが発生した場合、「Labelname」で指定されるエラーハンドリング用ルーチンを使用可能にします。

Resume Next: エラーが発生した場合、エラー発生行の次のステートメントからプログラムを継続実行させます。

GoTo 0:現在のプロシージャー中でのエラーハンドラーを使用不可にします。

ローカル:"On error"のスコープはグローバルで、他の"On error"文でキャンセルされるまで、アクティブなままです。"On Local error"はそれを起動するルーチンにローカルなものです。ローカルエラー処理は、何らかの以前のグローバル設定をオーバーライドします。起動ルーチンを終了する際には、ローカルエラー処理は、自動的にキャンセルされます。そして、以前のグローバル設定が修復されます。

On Error GoTo 文はマクロで生じるエラーに反応するために用いられます。

例:

Sub ExampleReset

On Error GoTo ErrorHandler

Dim iNumber As Integer

Dim iCount As Integer

Dim sLine As String

Dim aFile As String

    aFile = "c:\data.txt"

    iNumber = Freefile

    Open aFile For Output As #iNumber

    Print #iNumber, "This is a line of text"

    Close #iNumber

    iNumber = Freefile

    Open aFile For Input As iNumber

    For iCount = 1 To 5

        Line Input #iNumber, sLine

        If sLine <>"" Then

            Rem

        End If

    Next iCount

    Close #iNumber

    Exit Sub

ErrorHandler:

    Reset

    MsgBox "All files will be closed",0,"Error"

End Sub