VBAのデバッグ方法|ステップイン(F8)とブレイクポイント(F9)の使い方

VBAのデバッグ(エラーの原因を探して直す作業)には、「ステップイン(F8)」と「ブレイクポイント(F9)」の2つが基本です。ステップインは1行ずつ実行して動きを確認し、ブレイクポイントは特定の行で一時停止して原因を絞り込むのに使います。

この記事では、次の内容を順番に解説します。

  • ステップイン(F8)の使い方
  • ブレイクポイント(F9)の使い方
  • 2つの使い分け方

ステップイン(F8)とは?

VBAの編集画面でF8キーを押すと、コードが1行ずつ実行されます。押すたびに次の行に進むので、どの行で何が起きているかを目で追いながら確認できます。

使い方

  1. VBAの編集画面(Alt+F11)を開く
  2. 確認したいコードのウィンドウをクリックして選択する
  3. F8キーを押す(1回押すごとに1行ずつ実行される)

実際の動きの例

Sub sample()

    Dim i As Long

    For i = 1 To 10
        MsgBox "値は" & i
    Next i

End Sub

このコードをF8で1行ずつ実行すると、次のように確認できます。

  1. Dim i As Long が実行される
  2. For構文が動いて i に「1」が入る
  3. MsgBox "値は" & i が実行されて「値は1」と表示される
  4. Nextに戻って i が「2」になる
  5. これを10まで繰り返す

変数にカーソルを合わせると、その時点での値がポップアップで表示されます。「i に今どんな値が入っているか」をリアルタイムで確認できます。

ブレイクポイント(F9)とは?

ブレイクポイントは「ここで一度止まる」という印をコードにつける機能です。F5で実行すると、ブレイクポイントをつけた行の直前で自動的に停止します。

使い方

  1. VBAの編集画面を開く
  2. 止めたい行の左側の余白をクリックする(茶色の●がつく)、またはその行にカーソルを置いてF9キーを押す
  3. F5で実行すると、ブレイクポイントの行で一時停止する
  4. そこからF8で1行ずつ進めることもできる

ブレイクポイントが役立つ場面

コードが長い場合、F8で最初から1行ずつ確認するのは時間がかかります。「この部分より前は正しく動いているはず」という場合に、怪しい箇所の直前にブレイクポイントをつけておくと、そこまで一気に進んでから確認できます。

複数のブレイクポイントを設定して、どの範囲で問題が起きているかを絞り込む使い方も効果的です。

ステップインとブレイクポイントの使い分けは?

  • ステップイン(F8):コードが短いとき、または最初から1行ずつ動きを追いたいとき。
  • ブレイクポイント(F9):コードが長くて、怪しい箇所が大まかにわかっているとき。

実際のデバッグでは、まずブレイクポイントで範囲を絞り込んで、そこからF8で1行ずつ確認する、という組み合わせが効率的です。

まとめ

  • ステップイン(F8):1行ずつ実行。短いコードや細かいミスを探すときに使う。
  • ブレイクポイント(F9):特定の行で一時停止。長いコードで怪しい範囲を絞るときに使う。
  • 組み合わせる:ブレイクポイントで止めてからF8で1行ずつ確認するのが効率的。
  • 変数の確認:実行中に変数にカーソルを当てると、その時点での値が確認できる。

よくある質問

ブレイクポイントを解除するには?

●がついている行をもう一度クリックするか、その行にカーソルを置いてF9を押すと解除されます。すべてのブレイクポイントをまとめて解除したい場合は、メニューの「デバッグ」→「すべてのブレイクポイントを解除」をクリックします。

変数の値を確認する別の方法はある?

イミディエイトウィンドウに Debug.Print 変数名 と書いておくと、実行中にその変数の値がイミディエイトウィンドウに表示されます。ステップインと組み合わせると、複数の変数の値を一度に確認できます。イミディエイトウィンドウはCtrl+Gで表示できます。

エラーが出た行で止まったときはどうすればいい?

エラーが出ると赤くハイライトされた行で止まります。その行の変数にカーソルを当てて値を確認するか、イミディエイトウィンドウで ? 変数名 と入力してEnterを押すと値が表示されます。原因がわかったら「リセット(■)」ボタンで実行を止めてからコードを修正します。

F8で実行を途中でやめるには?

VBAの編集画面のツールバーにある「■(リセット)」ボタンをクリックすると、実行が停止します。Escキーでも止まることがあります。

ステップインで実行しても何も動かない場合は?

カーソルがコードの外(Subの外など)にある場合は実行が始まりません。実行したいSubの中にカーソルを置いてからF8を押してください。また、マクロが無効になっている場合も動きません。


動画で学びたい方へ

「記事を読んでも、実際に自分で書けるか不安…」という方には、動画で基礎からじっくり学べる講座がおすすめです。

VBAが初めての方を前提に、つまずきやすいポイントを先回りして解説しています。サンプル動画は無料でご覧いただけます。

動画で学ぶExcelマクロ|JIMOVEオンラインスクール

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール