「ステップ実行(F8)」って何をするもの?
VBAの「ステップ実行(F8)」は、マクロを一気に最後まで動かすのではなく、「1行ずつゆっくり進めて、何が起きているかを確認するためのモード」です。
F5 が「再生ボタン」だとしたら、F8 は「コマ送りボタン」です。
プログラミング超初心者ほど、本当はこの F8 が強い味方になります。
なぜなら、「この1行を実行すると、Excelにどんな変化が起きるのか」を目で見ながら学べるからです。
コードを“読む”のではなく、“動きを観察する”ための道具、それがステップ実行です。
F5 と F8 の違いをイメージでつかむ
F5 は「最後まで一気に」、F8 は「1行ずつ」
F5 実行は、今いるプロシージャを最初から End Sub まで一気に走らせます。
途中で何が起きているかは見えません。「結果だけ確認したい」とき向きです。
それに対して F8 は、「今からこの行を実行します」「次はこの行です」と、1行ずつ進んでいきます。
どの行で何が起きているか、どのタイミングでセルの値が変わるか、そういったことを細かく追いかけられます。
超初心者のうちは、
「まず F5 でざっくり動かしてみる」
「うまくいかない・よく分からないところを F8 でじっくり追う」
という使い分けができると、とても学びやすくなります。
ステップ実行(F8)の基本的な使い方
まずは準備:簡単なマクロを書いておく
標準モジュールに、次のようなシンプルなマクロを書いてみてください。
Sub ステップ実行の練習()
Range("A1").Value = "1行目"
Range("A2").Value = "2行目"
Range("A3").Value = "3行目"
End Sub
VBこのマクロは、A1、A2、A3 に順番に文字を書き込むだけの、とても単純なものです。
だからこそ、「どの行でどのセルが変わるか」が、ステップ実行でハッキリ見えます。
ステップ実行の開始方法
VBE(Visual Basic Editor)を開き、今のマクロの中にカーソルを置きます。
ここまでは F5 のときと同じです。
ここで F5 ではなく、F8 を押します。
すると、コードの1行目(Sub の次の行)が黄色くハイライトされるはずです。
この「黄色い行」が、「次に実行される行」です。
まだ何も実行されていません。「ここから始めますよ」と構えている状態です。
1行ずつ進めてみる
もう一度 F8 を押します。
すると、黄色い行が次の行に移動し、その直前にあった行が実行されます。
このマクロの場合、
1回目の F8:Range(“A1”).Value = “1行目” が実行され、黄色は次の行へ
2回目の F8:Range(“A2”).Value = “2行目” が実行され、黄色は次の行へ
3回目の F8:Range(“A3”).Value = “3行目” が実行され、黄色は End Sub の次へ
という流れになります。
F8 を押すたびに、Excel のシートをチラッと見てみてください。
A1 → A2 → A3 の順に文字が増えていくのが分かるはずです。
この「F8 を押す → Excel側で変化を確認する」というリズムが、ステップ実行の基本です。
ステップ実行で「何が見えるようになるか」
行と結果の対応関係が見える
ステップ実行の一番のメリットは、「この1行が、Excelにこの変化を起こしている」という対応が、体感で分かることです。
たとえば、次のようなコードがあったとします。
Sub 合計の練習()
Range("A1").Value = 10
Range("A2").Value = 20
Range("A3").Value = Range("A1").Value + Range("A2").Value
End Sub
VBF8 で1行ずつ進めながら、A1、A2、A3 のセルを見てみると、
1行目を実行した直後:A1 に 10 が入る
2行目を実行した直後:A2 に 20 が入る
3行目を実行した直後:A3 に 30 が入る
という変化が見えます。
「A3 の値は、A1 と A2 を足したものなんだな」ということが、目で見て理解できます。
これは、教科書で説明を読むよりも、ずっと強い理解になります。
間違っている行を特定しやすくなる
もし思った通りの結果にならないとき、F5 で一気に実行してしまうと、「どこでおかしくなったのか」が分かりません。
でも F8 で1行ずつ進めていれば、「この行を実行した直後から、値がおかしくなった」というポイントを特定できます。
たとえば、本当は A1 と A2 を足したいのに、間違えて A1 と A1 を足していたとします。
Range("A3").Value = Range("A1").Value + Range("A1").Value
VBF8 で進めていくと、A3 に 20 ではなく 20(10+10)が入るのを見て、「あれ?」と気づけます。
その瞬間に、「あ、ここで A2 を足さないといけないんだな」と修正ポイントが見えてきます。
ステップ実行を使うときのコツと注意点
どこからステップ実行を始めるか
基本は、「実行したいプロシージャの中にカーソルを置いて F8」です。
最初の F8 で、Sub の次の行が黄色くなります。
もし途中の行からステップ実行を始めたい場合は、その行にカーソルを置いてから F8 を押します。
ただし、その場合でも「実際に実行されるのは、黄色くなった行の一つ前の行」です。
超初心者のうちは、まずは「最初から順番に見る」ことに集中した方が分かりやすいので、
Sub の中ならどこでもいいのでクリック → F8 → 最初の実行行が黄色になる、という流れを覚えておけば十分です。
F8 を押しても何も起きないように見えるとき
よくあるのが、「F8 を押しているのに、Excel側で何も変わっていない気がする」というパターンです。
そのときは、次の二つを確認してみてください。
一つ目は、「今黄色くなっている行が、実際に何かを変える行かどうか」。
コメント行(’ で始まる行)や、Sub や End Sub の行は、実行しても見た目の変化はありません。
二つ目は、「Excelのシートをちゃんと見ているか」。
VBEの画面だけを見ていると、セルの変化に気づきにくいです。
F8 を押したら、毎回一瞬でいいので Excel の画面をチラ見する癖をつけると、変化に気づきやすくなります。
ステップ実行を途中でやめたいとき
ステップ実行中に「もういいや、やめたい」と思ったら、VBEのツールバーにある「リセット」ボタン(四角いアイコン)を押すか、メニューの「実行 → リセット」を選びます。
これで、実行中のマクロは止まり、黄色いハイライトも消えます。
「止められる」と分かっていると、安心して F8 を試せるようになります。
まとめと、次の一歩
今日おさえてほしいステップ実行(F8)のポイント
ステップ実行(F8)は、「マクロを1行ずつ進めて、動きを観察するためのモード」。
F5 が「最後まで一気に」、F8 が「1行ずつコマ送り」というイメージ。
最初の F8 で「次に実行される行」が黄色くなり、その後は F8 を押すたびに「黄色の一つ前の行」が実行される。
セルの変化や値の変化を、F8 → Excelをチラ見、のリズムで追いかけると、コードと結果の対応が体で分かる。
次にやってみてほしい練習
今日の例のように、A1~A3 に順番に値を入れるマクロや、A1・A2 に数値を入れて A3 に合計を入れるマクロを、自分で書いてみてください。
そのうえで、必ず F8 で1行ずつ進めながら、「今どの行が実行されて、どのセルが変わったか」を意識して見てみる。
「この1行が、この変化を起こしているんだな」という感覚が少しでもつかめたら、もうステップ実行を“デバッグ用の難しい機能”ではなく、“学習用の拡大鏡”として使えるようになっています。
