質問: err.number msgbox "システムエラー エラーno(" & errno & ") 内容(" & err.description & ")" end sub エラーが発生した場合はerr.numberには0以外がセットされるはずですが 「システムエラー エラーno(0) 内容()」 というメッセージが表示されることがあります。 on eroorで飛んできたときにエラーnoが0になってしまうことはありえるのでしょうか。
回答: プロシージャ内のエラー時にエラートラップ(on error goto)によってでerr_end:に飛んでいれば、err.number には必ずエラー番号が入ってくるはずです。 ですので以下は省略されている部分の推測です。 このプロシージャから呼び出しているプロシージャ(以下サブプロ)があるとして、そのサブプロでエラーが発生した場合、 (1)そのサブプロでエラートラップがされていなければ、このプロシージャのエラートラップ(on error goto)に引っかかり、err_end:に飛んできます。その際はerr.numberにはエラー番号が格納されています。 (2)そのサブプロでエラートラップしている場合、エラー処理後戻ってくるので、このプロシージャのエラートラップには引っかかりません。その際はerr.numberにはエラー番号が格納されていません(0)。 (2)の場合で、err_end:に飛ぶような記述をしていれば、今回のような現象が起きます。確認してみてください。 上記の内容が参考になればと思います。