- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:二つのエラーを発生させたい)
二つのエラーを発生させたい
このQ&Aのポイント
- ひとつのプロシージャー内で、二つのエラートラップを仕掛ける事は出来ないのでしょうか?
- i = "b"で2回目のエラーが発生した時に、 「Err2のエラー: 型が一致しません。」と表示させるにはどうすればいいでしょう?
- Sub エラーが発生した時にエラーが発生したら() Dim i As Long On Error GoTo Err1 On Error GoTo Err2 i = "a" Exit Sub Err1: MsgBox "Err1のエラー: " & Err.Description i = "b" Exit Sub Err2: MsgBox "Err2のエラー: " & Err.Description End Sub にすると、i = "a"のエラーで、 「Err2のエラー: 型が一致しません。」へ移動してしまいます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
on error gotoによって「エラー処理ルーチン」にジャンプしますが、エラー処理ルーチンの中ではエラー処理は出来ません。必ずその場でエラーになります。 エラー処理を継続するには、必ず一回resumeによってエラー処理ルーチンから復帰する必要があります。 作成例: sub macro1() dim i as long on error goto err1 i = "a" on error goto err2 i = "b" exit sub err1: msgbox "ERR1" resume next err2: msgbox "ERR2" resume next end sub より詳しい使い方は、on error あるいは resume のヘルプを熟読してください。
お礼
ありがとうございました。