dポイントプレゼントキャンペーン実施中!

クラスモジュール内で
On Error Resume Nextを書き、
エラー処理を行った後、Err.Raiseを実行して、呼び出し元にエラーを返していますが、
呼び出しもとの On Error Goto のとび先に飛びません。
呼び出し元で、Err.Numberを表示すると、値が取れますので、値は渡せているようです。
呼び出し元で何か実行時エラーを発生するとちゃんと On Error gotoのとび先に飛びますので、クラスモジュールで行った Err.Raiseが処理されないだけのようです。
どうすれば、呼び出しもとのとび先に飛ぶようになるでしょうか。お知恵をお貸しください。

A 回答 (1件)

>On Error Resume Nextを書き、



そりゃ飛びませんね。
Err.Raiseの前に
On Error Goto 0を1行いれましょう。

また、VBのメニューの、ツール→オプション→全般のエラーとラップのところで、「エラー処理対象外のエラーで中断」にすると便利かも。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

説明不足でしたが、このままではだめでした。
というのも、実際にエラーが発生している状態であるため、 On Error Goto 0 を書くとその時点で実行時エラーが発生し、エラー画面が表示されてしまい、呼出元のエラー処理は実行されません。

以下の方法で解決しました。
Err.Clear '一旦エラーをクリアする。
On Error Goto 0 'Resume Nextを解除する。
Err.Raise '呼出元にエラーを送る。
以上です。
Err.Clearを行うとNumber,Descriptionなどは全てクリアされるので、あらかじめ別の変数に対比しておく必要があります。

お礼日時:2004/08/04 19:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!