【VBA】Debug.Assertステートメントで条件に応じて一時停止する方法

VBA

本記事では実行時一時的な処理を中断させることができる『Debug.Assertステートメント』について解説していきます。

スポンサーリンク



はじめに:Stopステートメントとの違いとは

まずはStopステートメントとの違いについて簡単に説明します。

Stop:どんな場合でも処理を中断する

Debug.Assert:設定した条件に応じて処理を中断する

Stopステートメントは実行時に「Stop」と記述した部分に差し掛かったら、処理を中断します。

ですが、Debug.Assertステートメントは「Debug.Assert」と記述した部分に差し掛かっても、指定した条件を満たさなければ処理を中断することはありません。

 

2つのステートメントの大きな違いは”無条件か条件付きということになります。

 

Debug.Assertの記述方法

Debug.Assertステートメントを使いたいときの記述方法は下の通りです。

Debug.Assert 中断したいときの条件(Falseで中断)

 

Debug.Assertはブール式でFalseに評価された場合にのみ、処理を中断します。

つまり、下のようにループ処理の場合などはTrueであれば中断されずに処理は続行されます。

 

上のコードではDebug.Assertの条件は「i < 5」にしています。

なので、イミディエイトウィンドウを確認すると、ループが変数iが5未満のときはしっかりと繰り返されていることが分かります。

そして、処理が中断したときのローカルウィンドウを確認すると、変数iが5になった段階で止まっていることが分かります。

 

こういった条件で処理を中断するのがDebug.Assertステートメントだということを覚えておきましょう。

スポンサーリンク

コメント