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