Excel VBA | 超初心者(Excel操作+マクロ体験):VBA基礎環境 – ブレークポイント

Excel VBA VBA
スポンサーリンク

ブレークポイントってそもそも何者?

ブレークポイントは、VBAの実行を「ここで一回止まって」と指示するための“しおり”のようなものです。
マクロを F5 で一気に実行すると、途中の様子は見えませんが、ブレークポイントを置いておくと、その行に来たところでピタッと止まってくれます。

止まったところから、F8 で一行ずつ進めたり、変数の中身を確認したりできます。
つまりブレークポイントは、「このあたりの動きをじっくり観察したい」ときに使う、超重要な“一時停止ボタン”です。

ブレークポイントとステップ実行の関係

ステップ実行(F8)は、最初からずっと一行ずつ進めるモードでした。
ブレークポイントは、「そこまでの道のりは一気に走っていいから、この行に来たら止まって」という指定です。

イメージとしてはこうです。
最初から全部 F8 で追うのは、長いマクロだとしんどい。
だから、気になる場所にブレークポイントを置いて、そこまでは F5 で一気に進める。
止まったところから、F8 で細かく追いかける。

この「F5 でブレークポイントまで → そこから F8 でじっくり」ができるようになると、デバッグ(動きの確認)が一気に楽になります。

ブレークポイントの置き方と消し方

どこに置くのか

ブレークポイントは、「実行したい行」に置きます。
具体的には、Sub の中の、実際に処理が書かれている行(たとえば Range や MsgBox の行)です。

コメント行(’ で始まる行)や、空行、Sub や End Sub の行には置いても意味がありません。
「この行が実行される直前で止まってほしい」という行を選ぶのがポイントです。

置き方1:左端をクリックする

VBE のコードウィンドウで、止めたい行の左端の灰色の余白部分をクリックします。
すると、その行に赤い丸が付き、行全体が赤くハイライトされます。

これが「ブレークポイントが置かれた状態」です。
もう一度同じ場所をクリックすると、赤い丸が消えてブレークポイントが解除されます。

置き方2:カーソルを置いて F9 を押す

止めたい行の上にカーソルを置き、キーボードの F9 を押してもブレークポイントを設定できます。
もう一度 F9 を押すと解除されます。

マウス派なら左端クリック、キーボード派なら F9。
どちらを使っても結果は同じです。

具体例でブレークポイントの動きを体験する

例題1:途中で止めてセルの状態を見る

標準モジュールに、次のようなマクロを書いてみてください。

Sub ブレークポイント練習()

    Range("A1").Value = "一行目"
    Range("A2").Value = "二行目"
    Range("A3").Value = "三行目"

End Sub
VB

ここで、二行目の
Range(“A2”).Value = “二行目”
の行にブレークポイントを置きます。
左端をクリックして赤丸と赤い行になっていればOKです。

次に、このマクロの中にカーソルを置いて F5 を押します。
すると、マクロは実行されますが、A1 には「一行目」が入り、A2 に来る直前で止まります。
VBE では、ブレークポイントの行が黄色くハイライトされているはずです。

この状態で Excel のシートを見ると、A1 だけが書き換わっていて、A2 と A3 はまだ空のままです。
ここから F8 を押すと、A2 に「二行目」が入り、もう一度 F8 で A3 に「三行目」が入ります。

この例で感じてほしいのは、
「ブレークポイントまでの処理は一気に終わっていて、そこから先を一歩ずつ見ていける」
という感覚です。

例題2:おかしいところの“手前”で止める

次は、わざと間違いを入れたコードで、ブレークポイントのありがたみを感じてみます。

Sub 合計がおかしい例()

    Range("A1").Value = 10
    Range("A2").Value = 20
    Range("A3").Value = Range("A1").Value + Range("A1").Value   ' 本当は A2 を足したい

End Sub
VB

このマクロを F5 で一気に実行すると、A3 には 20 が入ります。
でも、本当は 30 にしたいので、「なんかおかしいな」となります。

ここで、
Range(“A3”).Value = …
の行にブレークポイントを置いて、もう一度 F5 で実行してみます。

今度は、A1 に 10、A2 に 20 が入ったところで止まり、A3 はまだ空のままです。
この状態で、コードのその行を見直すと、「あ、A1 と A1 を足してる」と気づきやすくなります。

さらに、ここから F8 で一行進めると、その瞬間に A3 に 20 が入るのが見えます。
「この行が、このおかしな結果を作っているんだな」というのが、目で確認できます。

これが、ブレークポイントとステップ実行を組み合わせたときの強さです。

ブレークポイントを使うときのコツと注意点

重要ポイント1:止めたい「少し手前」に置く

ブレークポイントは、「その行が実行される直前で止まる」ものです。
なので、「この行の結果を見たい」と思ったら、その行にブレークポイントを置けばOKです。

ただ、場合によっては「その一つ前の行に置く」方が分かりやすいこともあります。
たとえば、A3 に合計を入れる行の前で止めて、A1 と A2 の値を確認してから、F8 で A3 を計算させる、という使い方です。

超初心者のうちは、
「この行の前で止まってほしい」=「その行にブレークポイントを置く」
と覚えておけば十分です。

重要ポイント2:ブレークポイントを消し忘れない

ブレークポイントを残したまま F5 を押すと、毎回そこで止まってしまいます。
「なんかいつも途中で止まるな」と思ったら、赤い丸が残っていないか確認してみてください。

消し方は、置いたときと同じで、左端をもう一度クリックするか、F9 を押すだけです。
ブレークポイントが多くなってきたら、メニューの「デバッグ → すべてのブレークポイントをクリア」で一括削除もできます。

重要ポイント3:ブレークポイントは“学習用の拡大鏡”でもある

ブレークポイントは「エラーを探すためのもの」と思われがちですが、超初心者にとっては「学習用の拡大鏡」として使うのがとても有効です。

たとえば、少し長めのマクロを書いたときに、
「このあたりから何をしているのか、まだよく分かっていない」
という場所にブレークポイントを置いて、そこまで F5 で飛ばす。

止まったところから F8 で一行ずつ進めながら、セルの変化や変数の値を見ていく。
これを繰り返すと、「コードを読む」のではなく「コードの動きを観察する」感覚が身についてきます。

まとめと、次の一歩

ブレークポイントは、VBAの実行を「この行で一回止めて」と指示するためのしおり。
止めたい行の左端をクリックするか、カーソルを置いて F9 を押すと設定できる。
F5 で実行すると、ブレークポイントの行に来たところで止まり、そこから F8 で一行ずつ進められる。
「どの行でおかしくなっているか」を探したり、「このあたりの動きをじっくり観察したり」するのに最適。

次の一歩としては、今日の例のような短いマクロに、あえていろいろな場所にブレークポイントを置いてみて、
「ここに置くと、どこまで一気に動いて、どこで止まるのか」を体で覚えていくのがおすすめです。

タイトルとURLをコピーしました