#513 ステップインとステップオーバーの違い VBA

Visual Basic Editerを使ったプログラムのデバッグにおいては、プログラムを一時停止させたあと、プログラムを1行ずつ実行させながら変数などの動きをウォッチするという方法がしばしば使われます。

これを「ステップ実行」といいますが、それには「ステップイン」と「ステップオーバー」の2種類があります。
この2つは、ツールバーの2つのボタンや[デバッグ]メニューの2つのサブメニュー、あるいは「F8」・「Shift+F8」のキー操作で使い分けることができます。

ここでは、次のような2つのプロシージャがあるプログラムを例に、それらの2つの違いを見ていきたいと思います。Procedure1にブレークポイントを置いて一時停止させ、そのあと2種類のステップ実行を試行します。


Sub Procedure1()

  Dim i As Integer

  For i = 1 To 10
    Procedure2 (i)
  Next i

End Sub

Sub Procedure2(j As Integer)

  Debug.Print j

End Sub



■ステップインの場合












ステップインでは、そのプロシージャから他のプロシージャが呼び出された場合、呼び出し先のプロシージャのコード内まで入り込んでステップ実行が行われます。よって、呼び出し先のプロシージャまで追跡したい場合はこの方法を使います。


■ステップオーバーの場合






ステップオーバーでは、そのプロシージャから他のプロシージャが呼び出されても、呼び出し先のプロシージャ内はステップ実行されず、あたかもプロシージャが1行のコードのように実行されます。よって、呼び出し先のプロシージャまで追跡する必要がなく、ブレークポイントの設定されたプロシージャ内だけを追跡したい場合にこの方法を使います。


※以上のように、2つの違いは、プロシージャから他のプロシージャが呼び出されている場合の動きの違いですので、他のプロシージャを呼び出していないコードではどちらも結果的に同じ動きとなります。
| Index | Prev | Next |

この情報は参考になりましたか?、問題は解決しましたか?、もしまだなら......
T'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします
 

Copyright © T'sWare All rights reserved