9

問題

いくつかのコードをデバッグしようとしていますが、途中でブレークポイントで停止しました。ここで、いくつかの変数を変更して、特定のループを数回実行したいと考えています。

私はどこまで行きましたか?

変数を変更する方法は知っていますが、イミディエイト ウィンドウでループを実行しようとすると、どうにかスタックしてしまいます。次に例を示します。

Dim i As Integer 
Dim j As Integer 
For i = 0 To 6
       j=i    ' Do something
Next i 

コードのいくつかのバリエーションを試しましたが、毎回次のエラーが発生します。

コンパイル エラー: for なしで次へ

その他の関連情報

私は検索を試みましたが、ほとんどがループの問題に関する情報を見つけましたが、ループ自体は問題ないと確信しています。(特に、ブレークポイントに到達する前に到達したため)。

誰かがこの状況に対処しているのを私が見た唯一の場所で、彼はループを 1 行に減らしましたが、私の場合、毎回これを行うのは非常に非現実的です。

ループを含む関数を呼び出すことができ、関数呼び出しはおそらく機能することを認識していますが、これも非常に非現実的です。したがって、次の質問に要約されると思います。

質問

ExcelでVBAコードをデバッグしながらループを実行する実用的な方法は何ですか?

4

2 に答える 2

5

私はあなたの質問を理解していると思います。イミディエイト ウィンドウで複数行のコード ブロック (つまり、ループ) を実行したいとします。イミディエイト ウィンドウは 1 行のコードのみを対象としているため、これはエラーをスローします。

あなたがすでに述べた以外の提案はありません。テスト ループを別の関数に入れて、イミディエイト ウィンドウから呼び出すことをお勧めします。

Sub Test()
Dim i As Integer 
Dim j As Integer 
For i = 0 To 6
       j=i    ' Do something
Next i 
End

もう 1 つのオプションは、複数のブレークポイントを設定することです。を使用して、一度に 1 行のコードを実行することもできますF8

推奨される方法 (つまり、ほとんどの人が実際に行っていること) は、Immediate、Locals、および Watch ペインを含む IDE のすべての機能を使用することです。イミディエイト ペインで直接代入することにより、ほとんどの変数の値を実行時i=6に変更できます (実行すべきだと思うことを正確に実行します)。IDE では、ブレークポイントの設定、監視条件の追加、 を使用したコードの行ごとのF8ステップ実行、 を使用した関数またはプロシージャ呼び出しのステップ実行Shift+F8、マウス/カーソルを使用したコードのステップ オーバー (およびバック) も実行できます。実行時に新しい変数を追加することもできます。

于 2014-05-09T18:15:37.027 に答える