9-05.その他のテクニック:エラーを無視するには?

On Errorステートメント

On Error Resume Next

エラーが発生しても、そのエラーを無視して次の行の処理を継続するには、On Errorステートメントに「Resume Next」と付けて実行します。

 こうすると、エラー発生時にマクロが止まらないので、マクロの中でエラーへの対応を決められます。エラーの原因を探るのに役立つのがErrオブジェクトです。実行時エラーが発生すると、そのエラーに関する情報がErrオブジェクトに格納されます。するとNumberプロパティでエラー番号を、Descriptionプロパティでエラーメッセージを取得できます。

 次のサンプルは、10番目のシートを選択したときに、シートが存在しない場合のエラーに対応するコードです。シートがなければエラーが発生し、Errオブジェクトにはエラー番号が格納されます。そこで、Numberプロパティが0より大きい場合をIf文で判定して、Descriptionプロパティの内容を表示します。


エラー時にマクロを停止せず、その原因を表示する

Sub Sample()

On Error Resume Next

Sheets(124).Select

If Err.Number > 0 Then

MsgBox Err.Description

Else

MsgBox ActiveSheet.Name

End If

End Sub

 

実行結果

 

 

 

このエントリーをはてなブックマークに追加

IT開発関連書とビジネス書が豊富な翔泳社の通販『SEshop』
dポイントがどんどんたまる【d払いポイントGETモール】
業界最安値宣言!高性能・低価格のパソコン通販は【UsedFun】
リラクゼーションをお得に体験!ご予約はEPARKで!
【じゃらん】国内25,000軒の宿をネットで予約OK!2%ポイント還元!
【早い者勝ち!】.com/.net/.jp ドメイン取るならお名前.com
2022年9月21日