機能と数式 | VBA | セミナー | オンラインソフト | お問い合わせ | その他
Top > Excel > VBA > VBAのステートメント

On Errorステートメント



On Errorステートメント

構文
On Error GoTo line
On Error Resume Next
On Error GoTo 0
lineには、分岐先の行ラベルまたは行番号を指定します。

解説
エラー処理ルーチンを有効にし、エラーが発生したときの処理を指定します。On Errorステートメントでエラー処理ルーチンを有効にしていないと、エラーが発生したときにプログラムは停止します。また、On Errorステートメントで、エラー処理ルーチンを無効にすることもできます。
On Error GoTo line では、エラーが発生するとlineで指定した行ラベルまたは行番号に処理が移ります。
On Error Resume Next では、エラーが発生するとエラーの発生した次の行から処理を続行します。
On Error Goto 0 は、エラー処理ルーチンを無効にします。

サンプル
次の例は、エラーが発生したときmyError処理を移します。サンプルでは、AドライブがFDドライブで、FDの準備ができていないためエラーが発生すると仮定しています。

Sub Sample()
    Dim buf As String
    On Error GoTo myError
    buf = Dir("A:\Dummy.dat")
    If buf = "" Then
        MsgBox "ファイルがありません"
    Else
        MsgBox "ファイルが存在します"
    End If
    Exit Sub
myError:
    MsgBox "エラーが発生しました"       '表示されます
End Sub

次の例は、エラーが発生すると、エラーが発生した次の行から処理を続行します。

Sub Sample()
    Dim buf As String
    On Error Resume Next
    buf = Dir("A:\Dummy.dat")
    If buf = "" Then
        MsgBox "ファイルがありません"   '表示されます
    Else
        MsgBox "ファイルが存在します"
    End If
    Exit Sub
myError:
    MsgBox "エラーが発生しました"
End Sub



このエントリーをはてなブックマークに追加