Excel VBA | ステップイン(F8)とステップオーバー(Shift+F8)の違い

VBA
スポンサーリンク

答え

VBAのデバッグで使う「ステップイン(F8)」と「ステップオーバー(Shift+F8)」の違いは、呼び出し先のプロシージャに入るかどうかです。F8は呼び出し先のコードまで追跡し、Shift+F8は呼び出し先を一気に処理して次の行に進みます。


詳細解説

ステップイン(F8)

  • 動作:コードを1行ずつ実行し、もし他のプロシージャや関数を呼び出した場合、その中に「入り込んで」さらに1行ずつ実行する。
  • 用途:呼び出し先の処理内容まで確認したいとき。
Sub Procedure1()
    Dim i As Integer
    For i = 1 To 10
        Procedure2 (i)   ' ←ここでF8を押すとProcedure2の中へ入る
    Next i
End Sub
VB

ステップオーバー(Shift+F8)

  • 動作:コードを1行ずつ実行するが、呼び出し先のプロシージャや関数には「入らず」、その処理をまとめて実行して次の行へ進む。
  • 用途:呼び出し先の詳細を追跡する必要がなく、現在のプロシージャだけを確認したいとき。

  • 上記の例で Procedure2(i) の行でShift+F8を押すと、Procedure2の処理は一気に実行され、次の Next i に進む。

ポイントまとめ

  • F8(ステップイン) → 呼び出し先のプロシージャに入る
  • Shift+F8(ステップオーバー) → 呼び出し先には入らず、処理をまとめて実行
  • 呼び出し先がない単純なコードでは、両者の動きは同じになる。

補足

さらに「ステップアウト(Ctrl+Shift+F8)」という操作もあり、これは現在のプロシージャを最後まで実行して呼び出し元に戻る機能です。複雑なデバッグでは「イン」「オーバー」「アウト」を使い分けると効率的です。


要するに: 呼び出し先の処理を詳しく追いたいなら「ステップイン」、呼び出し先をスキップして流れだけ確認したいなら「ステップオーバー」を使うのが正解です。

VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました