VBAのエラー地獄から抜け出す!「Stop」と書くだけで解決スピードが3倍になる魔法のデバッグ術

【業務効率化】VBA
スポンサーリンク

なぜ、いま「Stop」が必要なのでしょうか?

VBAを書いていて「あれ?思った通りの動きをしないな…」と頭を抱えたことはありませんか?

私も初心者の頃は、コードを端から端まで目視でチェックし、結局原因がわからず3時間が経過していた……ということがよくありました。

そんな非効率な状況を打破するのが、今回ご紹介する「Stopステートメント」です。

これを使うと、「プログラムを任意の場所で一時停止させ、その瞬間の変数の値や状況をリアルタイムで確認」できるようになります。 

映画の「一時停止ボタン」を押して、画面の隅々に何が映っているかをじっくり観察するようなイメージです。

これを知っているだけで、デバッグ(不具合修正)にかかる時間は劇的に短縮されます。

【業務効率化】VBAの記事を見る

使い方は至ってシンプル。「Stop」と書くだけ

難しい設定は一切不要です。プログラムを止めたい場所に「Stop」と記述するだけです。

 実際に、不具合が含まれたコードを例に見てみましょう。

シナリオ:1から10まで足し算をする(はずだった)コード

以下のコードは、1から10までの数字を足し算して、最後に合計を表示する意図で作成されました。しかし、実行しても正しい結果が表示されません。

Sub DebugTest()
    Dim i As Long
    Dim total As Long
   
    total = 0
   
    For i = 1 To 10
      ' 本来は加算(+)すべきところを、誤って乗算(*)にしています

        total = total * i  ' ← わざとかけ算に
       
        ' ★ここにStopを入れる!
        Stop
       
    Next i
   
    MsgBox "合計は: " & total
End Sub

実践!Stopステートメントの使い方

  1. 上記のコードをVBE(エディタ)にコピペします。
  2. 実行ボタン(F5)を押します。
  3. すると、Stop の行が黄色くなってプログラムが止まります。
  4. この状態で、マウスカーソルを total という文字の上に重ねてみてください。
  5. ポップアップで total = 0 と表示されるはずです。

「足し算をしているはずなのに、なぜ0のままなんだろう?」と、すぐに異変に気づけるはずです。(原因は + ではなく * を使っているため、0に何を掛けても0になっているからです)

F5キーを再度押すと、次のループに進み、再び Stop の位置で止まります。

何度確認しても total が0のまま更新されない様子を目の当たりにすることで、「間違い」をリアルタイムに特定できるのです。

まとめ:効率的なデバッグへのステップアップ

多くの初心者は、状況を確認するために MsgBox を多用しがちです。しかし、ループ処理の中でこれを行うと、何度も「OK」ボタンを連打することになり、かえって効率を下げてしまいます。

Stopなら、確認が終わったらその一行を削除するだけで済みます。

さらに、停止中に以下の機能を併用すると、デバッグの精度はさらに上がります。

  • ローカルウィンドウの活用: (メニューの「表示」→「ローカルウィンドウ」)すべての変数の状態を一目瞭然に把握できます。
  • F8キー: 停止状態から、一行ずつ慎重に処理を進めます。
  • F5キー: 次の Stop 、あるいは最後まで一気に処理を再開します。

不具合の原因が分からないときは、まず怪しい場所に Stop と書いてみてください。 「なんとなく動かない」という不安が、「ここが原因だからこう直そう」という確信に変わるはずです。

次回のVBA開発で、ぜひ活用してみてください。

【業務効率化】VBAの記事を見る


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でも、年間100万円以上の節約・資産管理・スキルアップで新NISAで年間360万円投資し、iDeCoもフル活用しています。日商簿記3級持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、稼ぐ力を高めるITスキルについて発信しています。

生活を豊かにしたくて、高配当株投資で年間配当金60万円をめざしています。現在は年間配当金25万円以上達成!

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

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