• 締切済み

VBAのエラー発生場所をメッセージBOXに表示

VBAのOn Errorステートメントでエラー処理を行うときに、VBAソースの何行目で エラーが発生したかをメッセージBOXに表示したいのですが。 また、上記に近い類似の方法がありますか。 ご指導願います。

みんなの回答

回答No.4

こんにちは。 私は、別案というよりも、コーディングの基本の基本ですが、On Error トラップ(On Error Goto xx) というものは、最後につけるもので、製作中にトラップを置いたら、どこでエラーが出たか分かりません。 出来上がっている場合は、デバッグのステップインで、短い場合は、どこでマクロが飛ぶのか調べます。もしくは、ブレークポイントを段階的につけていき、どこまでは、OKか調べます。 コンパイル後に起こるのですから、[実行時エラー]だと思いますから、それなり見当はつくはずです。 もう一つ、コーディングの基本的なことですが、コードの行数は増やさずに、サブルーチンを増やすことです。一般的には、100行以下と言われています。 私は、ずっと、そのようにしてきています。

全文を見る
すると、全ての回答が全文表示されます。
  • ap_2
  • ベストアンサー率64% (70/109)
回答No.3

いやいや、ないこともないんですよ・・・ '先頭の数字は消さないでね! Sub hoge() 3 On Error GoTo ErrHnd 4 Err.Raise 9999, "test" 5 ErrHnd: 6 MsgBox VBA.Erl & " : " & Err.Number & Err.Source End Sub VBA.Erl が 4 (Error発生行の先頭の数字)を表示します。 手入力したソレが「何行目」と一致するとは限りませんが。 使うことはないです。

全文を見る
すると、全ての回答が全文表示されます。
noname#212058
noname#212058
回答No.2

残念ながら、VBAにそのような機能はありません。 よって、これを実現するためには自分で『作りこみ』をする 必要があります。 『作りこみ』の方法は No.1 さんが提示されている方式が スタンダードでしょう。プログラム内に『ここまで実行し た』ことを記録するコードをいちいち埋め込むのは、超面 倒で嫌になってきますが、VBAを使う限り必要悪として 受け入れましょう。

全文を見る
すると、全ての回答が全文表示されます。
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> 上記に近い類似の方法がありますか。 自前で「処理中のブロック名」を持つ変数作っておいて 処理単位に値を代入し直し、エラートラップで表示する。 ブロックを細かくすればするほど、特定はしやすいが手間が増える。 エラー発生箇所を大まかに特定したら、F8のステップ実行もアリ。 ただ、まれにF8では止まらないことがあったので イミディエイトウインドウにDebug.Print現在位置を表示させたりします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBAコーディング中のエラー時にメッセージボックスを表示させない方法

    VBAコーディング中のエラー時にメッセージボックスを表示させない方法  今日は,質問させていただきます.どうぞよろしくお願いいたします. VBAコーディング中に,エラー行があると毎回,メッセージボックスが 表示されると思うのですが,VBのようにエラーを強調表示させるだけで メッセージボックスを表示させないようにする方法は無いものでございましょうか..?  毎回コーディングを中断してリターンキーや,マウスを持ってクリックしに行くのが 非常に効率が悪いです...  もしお詳しい方がいらっしゃいましたら,どうぞよろしくお願いいたします

  • メッセージボックスの表示

    エクセル2000のVBAでメッセージボックスを表示させたいのですが、OKボタンを押して閉じるのではなく、VBAの記述でメッセージをオープン、クローズがしたいのですが、方法がわかりません。 何がしたいかというと、 FOR~NEXTなどの処理で今何件処理しているかをリアルタイムで表示させたいのです。 どなたか知っている方がいれば教えてください。

  • accessで未入力の場合にメッセージボックスを表示したい

    アクセスのフォーム(テキストボックス)が、未入力の場合メッセージボックスを表示したいです。 【追加条件】 1.テーブルで”入力規則”、”エラーメッセージ”は使わない。 2.vbaは使わない。 3.マクロの”条件”のみで処理する。 ---------------------------------------------------- vbaを使っての方法はあるみたいですが、マクロだけで入力判定をして、未入力の場合にメッセージボックスを表示する方法はないでしょうか?

  • VBAのメッセージボックスで%表示

    お世話になります。 VBAにて、算出されたある数字をメッセージボックスで %表示したいのですが、エクセルシートであれば、表示させる セルを決め、そのセルの表示形式を「パーセンテージ」にすれば いいのですが、メッセージボックスで表示させたいのです。 可能なのかどうか分かりませんが、ご教示頂きたく宜しく お願い申し上げます。

  • VBAにてメッセージボックスを最前面に表示させる

    エクセルVBAにて、指定時刻になったらメッセージボックスを、最前面に表示させるプログラムを作成中です。 時刻の指定は、ontimeメソッドの使用でできました。 しかし、最前面(他のアプリケーションを開いていても、メッセージボックスが手前に表示される)がどうしてもできません。。 VBだとAPI関数を使って、フォームを常に最前面表示はできました。 メッセージボックスで、このような表示方法は実現可能なのでしょうか? どなたか教えて下さい。よろしくお願いします。

  • メッセージボックス表示

    VBAでメッセージボックスの表示方法で教えてください。 あるセル、例えばA1に”111”と入力されたらメッセージボックスで ”○○”と出したい場合はどうしたらいいですか。 あと、A1からA3に”111”と入力された場合の複数セルの場合も教えてください。

  • EXCEL VBAでのアプリケーション定義エラーについて

    VBA初心者です。失礼します。 データのあるシートから別シートに、1行ずつ挿入しながらレポートを作成しようとしています。 すると、700行目までいってコピーして挿入しようとするといきなり「アプリケーション定義またはオブジェクト定義のエラーです。」と出てしまいます。 また、元データの並び替えを行うと650行目あたりで同じエラーが表示されます。 エラーの発生する値は並び替えごとに違います。 データを見ても、null値が入っているわけでもなく、他のものとなんら変わりはありません。 データの数を少なくすると最後まで問題なく処理されるのですが…。 負荷が掛かりすぎて上記のようなエラーがでるのでしょうか? しかし行数は700行ですし、列数も10列くらいしかありません…。 どうしても分からずこちらにきてしまいました。 どうぞご指導をよろしくお願いします。

  • Excel VBAメッセージボックスの表示位置が右下になってしまう

    ExcelのVBAでメッセージボックスを作成しましたが、 表示される位置がなぜが画面右下の端っこになってしまいます。 通常通り画面中央にメッセージボックスが表示されるにはどうすればよいでしょうか? またこうなってしまった原因はなんでしょうか? VBA初心者です。よろしくお願いします。

  • メッセージボックスのOKボタンをVBAでクリックさせたい

    EXCELの1つのブックに2つのマクロを組んでいます。 普段は1つ目のマクロを実行したあと、処理結果を確認してから 2つ目のマクロを動かしています。 ※1つ目のマクロ終了時に、完了のメッセージボックスが出ます。 この2つのマクロを、自動で処理するためのマクロを 作ろうとしていて、 1.1つ目のマクロを実行 2.処理完了のメッセージボックスのOKをクリック 3.2つ目のマクロを実行 という流れで処理しようと思っています。 今、メッセージボックスのOKボタンをVBAでクリックする方法がわからなくて 調べているのですが、お分かりになる方いらっしゃいましたら 教えていただけませんでしょうか。 例えば、1つフラグを作って、そのフラグが立っている時は メッセージボックスを出さないような制御は出来るのですが、 今回は、メッセージボックスをクリックする方法が 知りたいと思っています。 よろしくお願いいたします。

  • エラーが発生した場合は VBA

    Sub Sample() On Error GoTo Err1 Dim i As Integer i = "あ" '←ココで構文エラーとなる。 MsgBox "あ" Debug.Print "無事終了します" Exit Sub Err1: Debug.Print "エラーになりました" i = 1 Resume Next 'エラーの発生した次の行から処理を続行します。 End Sub このようなエラー処理で エラーが発生した場合は MsgBox "あ" ではなく i = "あ" '←ココで構文エラーとなる。 に戻る事は出来ないのでしょうか?

このQ&Aのポイント
  • 近所の犬の夜泣き、鳴き声がうるさいです。引っ越してきて半年が経ちますが、毎日早ければ夜の20時頃から夜中の3時頃まで遠吠えのような鳴き声で犬がずっと鳴いています。
  • 犬の鳴き声が日常生活に支障をきたしています。特に夜間になると騒々しく、静かに過ごすことができません。警察や市役所に相談したところ、対応が難しいと言われています。
  • 通報するしか対策がないようですが、どの家が問題の元凶かを特定することができず、解決が遠のいています。犬の飼い主に対する忍耐がなくなり、憎悪の念が膨らんでいます。
回答を見る