エクセルマニア

VBA エラー OnError

TOP > VBA・マクロ >  VBAのエラー処理
このエントリーをはてなブックマークに追加

VBAのエラー処理

VBAでエラーが起きた時は以下のようなエラーダイアログがでて、処理がストップします。

Range("A1").Value = 5 / 0

以下のように、On Error GoTo ~ を設定することで、エラーが起きたときに、error_stop: 以下のプログラムが処理されます。

Sub test()
 On Error GoTo error_stop
 Range("A1").Value = 5 / 0
error_stop:
 MsgBox "エラーが発生しました"
End Sub

実行結果


エラーの理由を出力するときは、Err.Description を使用します。

Sub test()
 On Error GoTo error_stop
 Range("A1").Value = 5 / 0
error_stop:
 MsgBox Err.Description
End Sub

実行結果 (エラーの種類はこちら)


On Error Resume Next にすることで、エラーを無視し、次の処理に進めることもできます。

Sub test()
 On Error Resume Next
 Range("A1").Value = 5 / 0
 Range("A2").Value = 5 / 1
End Sub

実行結果

A
1
25



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