VBAを実行するとVBA エラー 20「エラーが発生していないときに Resume を実行することはできません。」を見る機会はありませんか?
コードをみても誤った箇所がわからず途方に暮れる場合もあるかと思います。
そんな中で悩むことは、
・VBA エラー 20「エラーが発生していないときに Resume を実行することはできません。」の対処はどうすればよい?
ではないでしょうか?
今回は、
VBA エラー 20「エラーが発生していないときに Resume を実行することはできません。」の原因とサクっとできる対処方法について
まとめます!
もくじ
VBA エラー 20「エラーが発生していないときに Resume を実行することはできません。」はどんなエラー?
Resumeステートメントはエラーが発生したとしても無視して処理を続けさせるためのステートメントです。
Resumeステートメントはエラー処理の中で使うステートメントですので、エラー処理以外でResumeステートメントを使用した際に発生します。
VBA エラー 20の原因①「Resume ステートメントをエラー処理コードの外に記述」
Resume ステートメントをエラー処理以外で使用すると発生します。
サンプルコードです。
Sub エラーテスト1()
Dim result As Integer
Resume Next
result = 10 / 0 '0除算のエラー発生
MsgBox "計算結果は " & result & " です"
Exit Sub
Error処理:
MsgBox "エラーが発生しました!"
Resume Next
End Sub
0で割り算するときに発生するエラーを発生させていますが、
Resume ステートメントの記載場所がエラー処理コード外であるため、
「そこにResume ステートメントを書いてはいけませんよ!」
と怒られているわけです。
VBA エラー 20の原因①「Resume ステートメントをエラー処理コードの外に記述」の対処方法は そのステートメントをエラー ハンドラー内に移動するか、削除する
VBA エラー 20の対処方法はカンタンで、Resume ステートメントをあるべきエラー処理内に移動するか、
Resume ステートメントを削除するだけです。
Sub エラーテスト1()
Dim result As Integer
On Error GoTo Error処理
result = 10 / 0 '0除算のエラー発生
MsgBox "計算結果は " & result & " です"
Exit Sub
Error処理:
MsgBox "エラーが発生しました!"
Resume Next
End Sub
はい、 エラー 20が発生しなくなりましたね!
さいごに
今回は、
VBA エラー 20「エラーが発生していないときに Resume を実行することはできません。」の原因とサクっとできる対処方法について
まとめました。
VBAのエラーはパターンを知っておくと発生した時に慌てず対応することができますので、
しっかりと対処方法を把握するようにしておきたいですね!
コメントを残す