2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Resume と GoTo は同じ?!

Last updated at Posted at 2022-08-07

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 で除算しました。
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?