【Excel VBA】エラーが起きたら指定したラベルにジャンプさせる方法【備忘録】

Excel
スポンサーリンク

今回はエラーが起きたら指定したラベルにジャンプさせる方法を備忘録も兼ねて紹介したいと思います。

スポンサーリンク

エラーが起きたら指定したラベルにジャンプさせる方法

エラーが起きたら指定したラベルにジャンプさせるにはOn Error Goto 【ラベル名】を使用します。

'エラーが発生したらmyErrorというラベルまでジャンプする
On Error GoTo myError

例として以下のコードを使用して説明します。
指定したシートを格納し、そのシート名を出力させるマクロですが、シートが取得できなかった場合「シートが取得できませんでした。」というメッセージが表示されるようになっています。

Sub test_GotoError()

    Dim mySht                   As Worksheet
    
    On Error GoTo myError
    
    Set mySht = Sheets("")
    
    MsgBox mySht.Name
    
    Exit Sub
myError:
    MsgBox "シートが取得できませんでした。"
    
End Sub

上記コードをこのまま実行すると以下のメッセージボックスが表示されます。
myShtには何も格納されていない為)

逆にシート名が指定されていれば、指定したシート名が出力されます。

Set mySht = Sheets("Sheet1")
スポンサーリンク

注意点

注意点としてラベルの手前Exit Subを記述するのを忘れないようにしましょう。
というのも、Exit Subは処理を終了させることが出来るのですが、これを記述しないとラベル以下の処理もそのまま実行されてしまうからです。

今回の例で言うとMsgBox mySht.Nameを実行した後にMsgBox "シートが取得できませんでした。"も実行されてしまう、といった感じですね。

こうなると

シート名が出力されてるのに「シートが取得できませんでした」ってどういうことだ??

ということになりかねないので、ラベルの上にExit Subを記述するのを忘れないようにしましょう!

スポンサーリンク

まとめ

今回はエラーが起きたら指定したラベルにジャンプさせる方法を紹介しました。

On Error Goto 【ラベル名】を使うことで例外処理が簡単に再現できるので、是非参考にしていただければと思います。

このブログではVBAに関する記事を不定期で投稿していますので、是非ご覧ください!

タイトルとURLをコピーしました