On Error GoTo ... Resume Statement

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

Syntax:

On Error Statement diagram


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

Parameters:

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

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

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

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

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

Example:


Sub ExampleReset
On Error GoTo ErrorHandler
    Dim iNumber As Integer
    Dim iCount As Integer
    Dim sLine As String
    Dim aFile As String
    aFile = "C:\Users\ThisUser\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

ご支援をお願いします!