hakeの日記

Windows環境でプログラミングの勉強をしています。

EXCEL VBAメモ - エラー処理

Option Explicit

Sub test()
    On Error GoTo ErrHandler 'エラー発生時のジャンプ先
    Dim a As Long
    
    a = 1 / 0  ' エラー発生
    MsgBox "エラー発生行の次へジャンプしました。"
    On Error GoTo 0 ' エラー処理の無効化
    Exit Sub

Label1:
    MsgBox "Label1へジャンプしました。"
    On Error GoTo 0 ' エラー処理の無効化
    Exit Sub
    

' エラー処理を行う。
ErrHandler:
    ' Errオブジェクトからエラー情報が得られる。
    MsgBox Err.Number & vbCrLf & Err.Description '=> 11(改行)0で除算しました。
    
'   Resume        ' エラー発生行へ戻る(このサンプルでは無限ループになる)
'   Resume Label1 ' Label1へジャンプ
    Resume Next   ' エラー発生行の次行へジャンプ

End Sub