ブレークポイント
VBEのコードウィンドウの左側の枠をクリックするとブレークポイントを設定できます。

ブレークポイントを設定するとその行が茶色になります。
ブレークポイントを設定しているときに実行すると、
その行が実行される直前で処理が一時停止(ブレーク)します。

黄色の行が現在一時停止している行になります。
各種デバッグウィンドウ
・ローカルウィンドウ

現在のプロシージャの変数が表示されます。
上の例では開始直後にブレークさせているので、すべて初期値の0です。
値を編集して、変数の値を変更することもできます。
・ウオッチウィンドウ

ウォッチウィンドウはローカルウィンドウが現在のプロシージャ限定なのに対して、
あらゆる変数や式を表示できます。
ただし、見たいものを「ウォッチ式の追加」で手動で追加する必要があります。
ローカルウィンドウと同様に変数の値を変更できます。
下の例では、ブレークポイントの時点でtest2をWork1の引数で
呼び出した場合の結果が表示されています。

・イミディエイトウィンドウ
このウィンドウは上の2つのウィンドウと違って、変数等を表示するものではなく、
命令を実行するウィンドウです。
Work1 = test2(Work1)と記入して、エンターキーを押すと、
ブレーク中にその命令を実行するので、Work1は値は1に変わっています。

また、このウィンドウにDebug.Print命令の結果が表示されます。
各種実行方法
・実行(F5)
次のブレークポイントがある場合は次のブレークポイントまで実行します。
次のブレークポイントがない場合は最後まで実行します。

上のような場合にF5で下のようになります。

・ステップイン(F8)
ブレークしている行を実行して、次の行の実行前にブレークします。
F8を押し続けることで1行ずつ実行します。

上のような場合にF8で下のようになります。

・ステップオーバー(Shift+F8)
別プロシージャの呼び出し行でステップインの場合は、別プロシージャに飛びますが、
ステップオーバーの場合は、プロシージャの実行を終えてブレークします。

上のような場合にShift+F8で下のようになります。

ちなみにF8の場合は下のようになります。

・ステップアウト(Ctrl+Shift+F8)
現在のプロシージャの終りまで実行し、呼出元の呼出後の命令でブレークします。

上のような場合にCtrl+Shift+F8で下のようになります。

ブレーク位置の変更
ブレーク行の左の欄にある黄色の矢印を上下にドラッグ&ドロップすることで
ブレーク位置を変更できます。
上に移動させれば、実行済の処理を再度実行できます。
下に移動させれば、未実行の処理をスキップできます。
ブレーク位置の変更のみで処理は戻しや実行は行われません。
そのため変数の値は移動前の状態のままです。

上のような場合に、最初の命令までブレークポイントを戻しても、
Work1の値は入ったままです。

Excel VBA講座に戻ります
トップに戻ります