Resume と GoTo は異なる
ResumeはErrオブジェクトをクリアするが、GoToはクリアしない
検証
エラーが発生している状態(Err.Number<>0の状態)では、ResumeとGoToはいずれも、
指定されたラベルにジャンプするので、同じではないかと感じるが、
Resumeはジャンプするだけでなく、Errオブジェクトをクリアする点がGoToと異なる(GoToはクリアしない)
コード① Resumeの場合
Sub Sample()
On Error GoTo errHandler1
Dim Num As Long
Num = 5 / 0 '0割り算エラー発生
errHandler1:
Debug.Print Err.Number & " " & Err.Description
Resume errHandler2
errHandler2:
Debug.Print Err.Number & " " & Err.Description
End Sub
出力
11 0 で除算しました。
0
コード② GoToの場合
Sub Sample()
On Error GoTo errHandler1
Dim Num As Long
Num = 5 / 0 '0割り算エラー発生
errHandler1:
Debug.Print Err.Number & " " & Err.Description
GoTo errHandler2
errHandler2:
Debug.Print Err.Number & " " & Err.Description
End Sub
出力
11 0 で除算しました。
11 0 で除算しました。