ステップ実行とはデバッグのもっとも基本的な方法です。処理を1行ずつ実行していき、途中のデータや条件判定などを確認することができます。
ステップ実行の種類
- ステップイン
⇒ 1行ずつ実行(呼び出しプロシージャ内も1行ずつ実行) - ステップオーバー
⇒ 呼び出しプロシジャー内では処理を中断しない - ステップアウト
⇒ 現在のプロシージャを最後まで実行し、呼び出しもとに戻る
これらの操作は処理の中断中に、メニューの デバッグ ボタンから選択するか、ショートカットキーで行います。
以降では、前述のサンプルマクロを使用してステップ実行を説明していきます。予め、サンプルマクロを標準モジュールに貼り付けて、実行できる準備を整えておくことをお勧めします。
ステップイン
ステップイン操作(F8)を行うと処理を1行ずつすすめることができます。実行途中に他のプロシージャがあると、その中でも1行ずつ処理をすすめることができます。処理の流れを順に追っていきたい場合に使用します。
下の例は、黄色行で処理が中断している状態です。
上図のプロシージャを呼び出している行でステップイン操作を行うと、黄色の行がFunctionプロシージャ内に移動します。これは処理が呼び出しプロシージャ内に移り、そこで処理が中断していることを意味しています。
ステップイン操作を繰り返し、プロシージャの最後までくると・・・
呼び出しもとへ戻り、次の行に処理が移ります。
このようにして1行ずつ処理の動きを確認することができるのがステップイン操作になります。
ステップオーバー
プロシージャを呼び出している行でステップオーバー操作(Shift + F8)を行うと、呼び出しプロシージャ内で処理は中断しません。 但し、呼び出したプロシージャ内にブレークポイントが設定してある場合はそこで処理が中断します。
下の例は、黄色行で処理が中断している状態です。
上図の状態でステップオーバー操作をすると、呼び出しプロシージャ内にブレークポイントは設定されていないため処理は中断せず、呼び出し元の次の行で処理が中断します。
予め、呼び出し先プロシージャに確認ポイントがないことが分かっている場合に、ステップオーバーを使うとよいでしょう。
ステップアウト
ステップアウト操作(Ctrl + Shift + F8)を行うと、現時点で処理が中断しているプロシージャ内で処理は中断せず、 呼び出しもとへ速やかに戻ることができます。 但し、現時点のプロシージャ内にブレークポイントが設定してある場合はそこで処理が中断します。
下の例は、呼び出し先プロシージャ内の黄色行で処理が中断している状態です。
上図の状態からステップアウト操作を行うと、呼び出しもとのプロシージャへ即座に戻り、その次の行で処理が中断します。
呼び出し先プロシージャに処理を確認ポイントがなく、即座に呼び出し元へ戻りたい場合にステップアウトを使うとよいでしょう。