変数にどんな値が入っているかというのを知りたいと思っています。またループが1000回まわった状態でステップインで
プログラムがどんな動きになるのか知りたいと思っています。
イミディエイトウィンドウを見て、ブレイクポイントを設定してステップインを1000回行えば解決するのはわかっていますが、
それだと非常に時間がかかります。ブレイクポイントを設定はしたいのですが、1000回ステップインをするのは面倒。
それを解決するための策はないんでしょうか?
Visual Basic Editorのメニュー、デバッグ→ウォッチ式の追加、ってのを試してください。
該当のSubもしくはFunctionで、ループカウンタがもしIで0からカウントするなら、式の欄に「I Mod 1000 = 999」として「式が True のとき中断」という条件を使えば、Iが999や1999や2999などの時に止めることができます。
また、Debug.Printってのを使って、
If I Mod 1000 = 999 Then
Debug.Print "I = " & CStr(I) & ", X: " & X
End If
みたいにすることで、いちいち処理を止めずともイミディエイトウィンドウに出力されます。
回答者 | 回答 | 受取 | ベストアンサー | 回答時間 | |
---|---|---|---|---|---|
1 | ![]() |
724回 | 660回 | 26回 | 2009-04-03 10:41:26 |
2 | ![]() |
118回 | 75回 | 40回 | 2009-04-03 12:50:58 |
3 | ![]() |
194回 | 162回 | 21回 | 2009-04-03 16:28:07 |
4 | ![]() |
897回 | 806回 | 145回 | 2009-04-04 13:25:31 |
コメント(3件)
勉強になりました。
処理量が多い場合も m6u さんのように出力頻度をさげるようにすれば、たいていのことは Debug.Print
で事足りる気がします。
ブレークポイントを使用するのであれば、面倒ですが
If i=1000 Then
Debug.Print i
End If
のような文をステップ実行したい直前においてIf文の中にブレークポイントを設定し、そこからステップ
実行すれば1000回目のループをステップできます。