
No.1ベストアンサー
- 回答日時:
エラーをトラップするには、On Errorステートメントを使います。
On Errorステートメント自体は、何かをする命令ではないのですが、
これ以降に発生したエラーに対しての動作が定義できます。
通常、Workbook.Open でエラーが発生すると、そこでプログラムの
動作は停止しますが、次のようなコードにすると動作は停止せず、
行ラベル「ErrorHandler」へ制御が飛びます。
On Error GoTo ErrorHandler
Workbook.Open~ '←ここでエラーが発生すると
On Error GoTo 0
・
・
・
Exit Sub
ErrorHandler: '←ここへ制御が移ります
・
・
End Sub
OverTheGalaxyさんが書いたプログラムの構造が分からないので、何とも言えないのですが、
きれいに構造化されていれば、Subプロシージャを抜けるだけで対応できるかもしれません。
ちなみに、On Error で定義した動作は、すべてのエラーで有効になってしまいます。
デバッグ中のプログラムは、色々なところでエラーを起こすものですが、その場合も
動作は停止しません。(おかしな動作をするだけで、エラーの発生箇所が分からない状況になります)
エラーの発生が予想される箇所(今回の場合は、Workbook.Open)を過ぎたら、速やかに
エラートラップを無効にすることをお勧めします。
エラートラップを無効にするには、「On Error GoTo 0」を使います。
この回答へのお礼
お礼日時:2016/02/05 22:31
ありがとうございます。
ErrorHandlerへ移動しエラー用の処理を実行した後、どうなるのでしょうか?On Error GoTo 0 へ戻るのでしょうか?
No.2
- 回答日時:
Resumeステートメントで戻り先を指定します。
こんな感じです。
ErrorHandler:
・
・
Resume '←エラーが発生した命令から実行が再開されます。
Resume Next '←エラーが発生した命令の次の命令からに再開されます。
Resume 行ラベル '←指定した行ラベルへ戻ります。
・
・ ' それ以外にも、Exit SubやEnd等も記述可能だと思いますが、何も書かないと
End Sub '←ここにくるので、当プロシージャは終了します。
詳しくは、ヘルプを参照してください。
この回答へのお礼
お礼日時:2016/02/05 23:28
ありがとうございます。
時々目にするResumeはこうやって使う!の一端が見えた気がしました。
実はErrHandlerなんて初めて使います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
【マクロ】エラー【#DIV/0!】が...
-
VBAがブレークモードになっ...
-
ADODB.Streamを使用してUTF-8を...
-
EXCEL VBAマクロ中断でデバッグ...
-
カーソルオープンでエラー(ORA...
-
なぜエラーになるのでしょうか...
-
AccessVBAでExcelを起動し、罫...
-
エクセルでURLに特定文字が含ま...
-
Debug.exe実行時にWinMainCRTSt...
-
VBからAccessへの接続でエラー
-
Invalid procedure call or arg...
-
ACCESSのエラーで困っています
-
エクセルエラー13型が一致しま...
-
エクセルVBA、フリーフォームで...
-
psapi.dllのGetModuleBaseName...
-
トランスポートレベルのエラー
-
Excelの条件式について
-
【VBA】ボタンに登録したマクロ...
-
VB2010 CreateMailslot失敗
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
【マクロ】エラー【#DIV/0!】が...
-
実行時エラー -'-2147417848
-
実行時エラー3001「引数が間違...
-
実行時エラー48発生時のDLL特定...
-
【Excel VBA】マクロをボタンに...
-
マクロについて教えてください...
-
なぜこんな初歩的なVBAのIf文で...
-
VB6+SQL サーバー 2000 で 実行...
-
OLEDB.NETで接続できない
-
EXCEL/VBAで、自分のPCだけエラ...
-
ExcelVBA Range クラスの Page...
-
Invalid procedure call or arg...
-
VBAでのエラー
-
AccessVBAでExcelを起動し、罫...
-
[Delphi] データセットは閉じて...
-
VBAで実行時エラー'424' オブジ...
-
なぜエラーになるのでしょうか...
-
ADODB.Streamを使用してUTF-8を...
おすすめ情報