VBを始めたばかりの初心者です。
ご存知の方、教えていただけたら光栄です。
あるプロシージャ内で、エラーが発生し
On Error Go To で、エラーProcに飛んでいるところまで
突きとめたのですが、
なにが原因で、なんのエラーなのか、さっぱりわかりません。
そこで、エラーログをテキストファイルなどに出力させるとか、
エラーが発生したときに画面にエラーログを出力させる方法などは
ないものか、ヘルプで調べてみたのですが、とても目的まで辿りつけませんでした。
このような方法をご存知の方、
また、他に適当な処理をご存知の方、
お力をお貸しください。よろしくお願いします。
Call MsgBox(Err.Number & vbCrLf & Err.Description)
とか?
On Error Goto をコメントアウトするとか。
nanashiさん、Sayさん、ありがとうございます。
Call MsgBox(Err.Number & vbCrLf & Err.Description)
を、挿入したところ、たしかにエラーメッセージが出ました。
レコード長が一致していないとうエラーメッセージでした。
桁落ちしていないかどうか、調べていきたいと思います。
ありがとうございます。
ちなみに、この"call"関数なんですが、なにかプロシージャを
呼ぶときにつけるイメージがあったんですが。
上記のようなMsgboxを出すときにも付けるのは
フォーマルなのかな?
CALLを省いた形でもやってみましたが、同じ様な結果が得られました。
SayさんのOn ErrorGotoをコメントアウトするやり方は
わかりませんでした。
ネットでもう少し検索してみたいと思います。
>ErrorGotoをコメントアウトするやり方は
>わかりませんでした。
単に文頭に「'」(シングルクォート)つけるだけなんですが・・・。
つまりこう。
'On Error Goto どっかのラベル
通常、開発中はOn Error Goroはコメントアウトして、
正常系をテスト実行しながら修正していきます。
もうエラーは出ない、と判断したら
コメントアウトをはずして異常系(Error処理ができているか)
のテストをします。
Callを付けるのは私の癖です(^^;
メッセージボックスを使う場合以外にもありますが、
引数が複数の関数で戻り値の無いもの(もしくは戻り値を受け取らないもの)を呼ぶとき
括弧をつけているとコンパイルエラーが出ます。
かといって関数を呼ぶときに括弧をつけないのは個人的に嫌なのでCallを使っているんです。
ちなみにコメントアウトは「'」を文の頭に付けると出来ます。
Sayさん、ありがとうございます。
コメントアウトとはコメント文にするということだったのですね。。
とても恥ずかしいです。
さっそく、やってみたいと思います!
nanashiさん、ありがとうございます。
なるほど、納得です!
また勉強になりました。
私も取り入れたいと思います。
Sayさん、
確かにコメントアウトすると、エラーも出力されてエラー箇所も
特定できました。
とっても基本的なことなんですよね、これって。
おはずかしいです。
でも、色々試したことで勉強になりました。
ありがとうございます。
ツイート | ![]() |