【VBA】Stopステートメントで、マクロの実行を任意に一時中断する方法

目次

はじめに

VBAのデバッグ作業中、特定の位置でプログラムの実行を一時停止させたい場合、通常はブレークポイントF9キーで設定/解除)を使います。しかし、ブレークポイントはファイルに保存されないため、一度ファイルを閉じてしまうと、再度設定し直す必要があります。

もし、ファイルを閉じても消えない、コード自体に埋め込まれたブレークポイントのようなものが欲しければ、Stop ステートメントが非常に便利です。

この記事では、Stop ステートメントを使って、マクロの実行を任意の場所で確実に一時中断させる方法と、ブレークポイントとの使い分けについて解説します。


Stop ステートメントを使ったサンプルコード

このマクロは、2つの数値を足し合わせる計算の途中で Stop ステートメントを挟み、その時点での変数の値を確認できるようにします。

完成コード

' Stopステートメントでマクロを一時停止させる
Sub PauseWithStopStatement()
    Dim valueA As Long
    Dim valueB As Long
    
    valueA = 10
    valueB = 20
    
    '--- 1回目の計算 ---
    valueA = valueA + valueB
    
    '--- Stopステートメントで、ここで実行を一時中断 ---
    Stop
    
    '--- 2回目の計算 ---
    ' マクロを再開(F5)すると、ここから実行される
    valueB = valueB + valueA
    
    Debug.Print "最終結果: valueA=" & valueA & ", valueB=" & valueB

End Sub

実行方法と動作

  1. VBE(VBAエディタ)を開いた状態で、上記マクロを実行します。
  2. プログラムは Stop と書かれた行まで実行され、その行が黄色くハイライトされた状態で一時停止(中断モード)します。
  3. この状態で、各変数(valueAvalueB)にカーソルを合わせると、その時点での値(valueA30)を確認できます。
  4. ツールバーの「継続」ボタン、または F5 キーを押すと、マクロは中断した次の行から実行を再開します。

コードの解説とブレークポイントとの違い

Stop ステートメント

Stop は、プログラムの実行を中断モードに切り替えるだけの、非常にシンプルなステートメントです。

ブレークポイント (F9) との違い

項目Stop ステートメントブレークポイント (F9)
保存コードの一部としてファイルに保存されるファイルには保存されず、VBE環境にのみ保存される
共有ファイルを他人に渡すと、相手の環境でも必ず止まる相手の環境では止まらない
設定/解除コードを直接編集する必要があるF9キーで簡単に行える

基本的には、一時的なデバッグには手軽なブレークポイントを使い、コードの特定の箇所で必ず一時停止させたい意図を、コード自体に残しておきたい場合に Stop を使う、という使い分けが良いでしょう。

注意: Stop ステートメントは、マクロの最終版を配布する際には、不要であれば削除するのを忘れないようにしましょう。利用者の環境で意図せずマクロが停止してしまう原因になります。


まとめ

今回は、Stop ステートメントを使って、VBAマクロの実行を意図的に一時中断させる方法を解説しました。

  • コード内に Stop と記述するだけで、その位置で実行が中断される。
  • ブレークポイントとは異なり、ファイルに保存されるため、他の環境でも動作する。
  • デバッグが完了したら、不要な Stop は削除するのが一般的。

Stop ステートメントは、開発中の重要なチェックポイントに目印として埋め込んでおくのに非常に便利です。ブレークポイントと賢く使い分けて、デバッグ作業の効率を向上させましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次