人気ブログランキング | 話題のタグを見る

エラー処理の終了 On Error GoTo 0

先日の記事で紹介した「編集したいBookが使用中の時の処理」の中では「On Error Resume Next」を冒頭に記述していたが、「On Error Resume Next」は以後すべてのエラーをスキップするため重要なエラーが発生していても把握できないという欠点があった。それで使ってみたのが表題の「On Error GoTo 0」で、これはエラー処理を終了してリセットしてくれるというもの。だからこれをエラー発生が予想される箇所のすぐあとに挿入してやれば、以降のコード内でエラーが発生すればきっちり教えてくれることになる。「On Error Resume Next」と「On Error GoTo 0」はセットで使うべきもので、完全に完成されたコード以外では「On Error Resume Next」を単独で使うのは避けた方がよさそう。

【参考コード】(修正版)
 On Error Resume Next
 Open "C:\Book1.xls" For Append As #1
 Close #1
 If Err.Number > 0 Then
   MsgBox "ファイルは使用中です"
   On Error GoTo 0
 Else
   (ここに実行したいコードを記述します)
 End If


とした方が後々のことを考えると賢明だろう。(実際にこのコードに修正してみたところ、隠れていたエラーを発見し修正することができた)
by th6969 | 2015-01-31 14:16 | Excel VBA