• 締切済み

強制終了するマクロプログラムのデバッグ方法

エクセルで作成したマクロプログラムを実行すると、エラーで強制終了してしまいます。 (マクロのデバッグ画面ではなく、「この障害をMicrosoftへ報告しますか?」の確認画面が出て、 そのまま終了してしまう) このような状況のVBMacroのデバッグを行うためには、どんな方法があるでしょうか。 (すぐに考えられるのは、print文的な出力をワークファイルに順次行う。というようなものですが、他に良い方法があれば、お教えください) Windows-XPとExcel2003の組み合わせです。 よろしくお願いします。

みんなの回答

回答No.1

あくまでも私なら、です。 1. 落ちてしまうVBAコードを、プロシージャ(Sub)にしてしまう。 2. プロシージャの各段階に「debug.print "コメント"」を入れる。 3. 落ちてしまう原因を探るために、プロシージャの早い段階で「return」を入れ、 どこで落ちるのか突き止める。 イメージとしては。。。 以下のような状態でマクロを走らせ、落ちないなら、「処理1」に問題が ないことがわかります。 ですから、「Return」を「処理2」の後ろに持って行きます。 ここでマクロが落ちるなら、「処理2」に問題があるとわかります。 ==== main ==== Call hogehoge ==== end of main ==== ==== sub ==== Private Sub hogehoge() 処理1 Debug.Print "処理1終了" Return 処理2 Debug.Print "処理2終了" 処理3 Debug.Print "処理3終了" ... End Sub ==== end of sub ==== 参考になりましたら幸いです。

goku3
質問者

お礼

お礼が遅くなり、大変申し訳ございません。 頂いたご回答、参考にさせて頂きます。 ありがとうございました。

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

関連するQ&A

  • 一定時間経過したExcelの強制終了方法を教えてください

    一定時間経過したExcelの強制終了方法を教えてください ExcelBookがAutoopenになっていて、マクロが起動します。 マクロが起動してから一定時間が経過したら、マクロでそのBookを強制終了したいのですが(保存等一切しなくてよいです)・・・ マクロは現行のまま処理(画面入力や検索する物です)を継続しつつ、 一定時間のカウントを行いたいのです。 時間経過後にマクロの処理中であっても強制終了させたいのです。 何方か、ご教授ねがいませんかm(_ _)m よろしくお願いいたします。

  • 強制終了される!

     昨日、IEを7(7.7?)バージョンにアップすると言うメッセージが出たので、それに従い操作をし完了しました。ですが、それ以来強制終了画面(マイクロソフト社に報告するという画面)が頻発し強制終了されてしまい非常に困っています。  画面を立ち上げた時に強制終了が出るのではなく、画面を閉じるとエラー報告メッセージが出、複数開いている際の他の画面が全て終了されてしまいます。  バージョンアップした事が原因なのか分かりませんが、その操作直後からトラブルが発生し始めました。  どなたか解決方法をご存知でしたら、宜しくお願いいたします。

  • Excel のマクロからの印刷と終了

    特定のシートを印刷し,それが終われば Excel 本体を終了させるマクロを考えています。 Worksheets("sample").printout Application.Quit しかし,このコードでは 「問題が発生したため、Microsoft Office Excel を終了します。(略)」 という,エラー報告送信ダイアログが出てしまいます。 どうすれば印刷した後に Excel を終了させることができるのでしょうか。

  • Excelを使っているときだけ強制終了する

    Windows10上でExcel2013を使っていますが、このアプリケーションを使っているときだけ頻繁に強制終了します。(Wordを使っているときは強制終了しません。)Microsoft Officeを再インストールしましたが駄目でした。対処法を教えてください。

  • デバッグ終了後、再度デバッグ動作できない

    簡単な電卓のプログラムを組んで、ビルド後デバッグして、一旦デバッグ終了のためにフォームの右上の×ボタンで終了し、再度デバッグ動作を実行するとデバッグに入れなくなります。 一旦Code Gear C++ Builder 2009を終了使用とすると、”デバッグを終了しますか?”というメッセージボックスが出てきます。 そのままIDEの終了動作を行うと”デバッグプロセスを初期化できません のプロセスを終了する際にデバッガで致命的なエラーが発生しました。作業中のファイルを保存し CodeGear C++ Builderを再起動してください。” このようなメッセージボックスが出てきて強制終了してから起動しないかぎり再度デバッグ動作ができないのですが、解決方法ご存じの方いらっしゃいませんでしょうか? 現在使用しているのはCode Gear C++ Builder 2009 です。

  • Excelが強制終了になってしまうのですが‥

    もし以下の原因、あるいはどこに問い合わせればよいかご存知でしたらお教えください。 ・Excel97で特定のファイルを開くとき、強制終了される ・Access97でエキスポートして作成したExcel97のファイルが「マクロが含まれています」というメッセージが表示される ・Office2000でExcelが強制終了が出て開けない。また、アンインストールしてインストールしなおしても現象がなおらない Excel97の特定のシートを開こうとすると「メモリ不足です」というメッセージが表示され、印刷しようとしても、新規作成したファイルにコピーペーストしようとしても強制終了になります(複数台のPCにて。OSはWin98SE/ME)。 どうしても印刷したいので、Access97でテーブルとしてインポートし、再度excel97のファイルとしてエクスポートしました。 エクスポートしたファイルを開こうとすると「マクロが含まれています」というメッセージが表示されます。「マクロを無効」にチェックを入れ、開こうとすると、「このブックにはマクロ(Microsoft excel4.0macro)が含まれています。安全だとわかっている場合ははいをクリックして開いてください」と、もう一度メッセージが表示されます。不安なので開きませんでした。 PCはNorton2001の最新のウィルス定義を使用し、HDD全体のウィルススキャンをしましたが、ウィルスは検出されません。シマンテック社さんに分析を依頼しましたが、悪意のあるコードは見つからなかったとのことです。 また、このファイルが原因かわかりませんが、office2000をインストールした複数台のPCでexcelが起動できなくなりました。アンインストールしてインストールしなおしてもやはり強制終了になります。 Accessのテーブルの状態で全ての列を選択してコピーし、Excelにペーストすると問題なくデータが表示・印刷できるのですが、なにぶん気持ちが悪いです。

  • mac excel 2011 マクロ

     現在macのexcel2011でVBAを勉強中なのですが、いきなりつまずいてしまいました。 適当なマクロを作り、ボタンにマクロを登録しようと ボタンを作り → ボタンで右クリック → マクロの登録 と選択すると 「Microsoft エラー報告ツール」 というウインドウが出てきて 「問題が発生したため、Microsoft Excel を終了します。ご不便をおかけして申し訳ありません」といった趣旨のメッセージが表示され、excelが強制終了してしまいます。 試した数は少ないですが、おそらくマクロの内容に関係なく起きる気がします。 チェックボックスなどにマクロを登録しようとしても同じ現象が起きます。 何かわかる方がいらっしゃいましたら、返答よろしくお願いします。 使用しているOSは     OS X 10.8.3 です。

  • デバッグって?

    ExcelVBA 勉強中の者です。 VBE のプロシージャの表示されている画面で F8 を押してマクロをワンステップづつ実行し、進行状況を確認したいと思いました。そこでお伺いしたいのはプロシージャとワークシートを同時に一画面に表示して変化を目の当たりに見ることはできますか。 その方法を教えてください。 もう一つ聞いてもいいですか。 ローカルウィンドウによるデバッグは分かったような気がします。(20%位かな?) でもイミディエイトウィンドウの使い方、意味が全くわかりません。教えてください。よろしくお願いします。

  • 通常にウィンドウズを終了しても強制終了みたいな画面が出ます。

    通常にウィンドウズを終了しても強制終了みたいな画面が出ます。 何もソフトは起動していないのですがPCを終了したら強制終了みたいな画面が出て 特に問題はないのですぐに終了するとしているのですが なぜでしょうか?

  • デバッグ中だけ、画面に出力したいときはどうすればいいでしょうか?

    デバッグ中だけ、画面に出力したいときはどうすればいいでしょうか? Visual Basic では debug.print("デバッグ中") といった関数が用意されていて、デバッグ中だけ動作できたのですが、java にもこういうのがないでしょうか? #ifdef DEBUG System.out.println("デバッグ中"); #endif などとすると、これだけで3行も場所を取りますし・・。

    • ベストアンサー
    • Java