本記事では実行時一時的な処理を中断させることができる『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であれば中断されずに処理は続行されます。
1 2 3 4 5 6 7 8 9 |
Sub sample() Dim i As Long For i = 1 To 10 Debug.Print i Debug.Assert i < 5 '--- 5以上になった場合に中断 Next End Sub |
上のコードではDebug.Assertの条件は「i < 5」にしています。
なので、イミディエイトウィンドウを確認すると、ループが変数iが5未満のときはしっかりと繰り返されていることが分かります。
そして、処理が中断したときのローカルウィンドウを確認すると、変数iが5になった段階で止まっていることが分かります。
こういった条件で処理を中断するのがDebug.Assertステートメントだということを覚えておきましょう。
〇おすすめのVBA参考書ランキング!
1位 | 2位 | 3位 |
---|---|---|
Excel VBA 脱初心者のための集中講座 | パーフェクトExcel VBA | ExcelVBA 実戦のための技術 |
初心者~中級者 | 中級者 | 初心者~中級者 |
【初心者が手に取るべき参考書】 ・「書籍+動画」で圧倒的に理解しやすい入門書になっている。 ・丁寧で詳しい解説でボリューム感がある。 | 【より深い理解をしたい方にお勧めな参考書】 ・テーマに対して丁寧な解説・適度な深さで解説されている。 ・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。 | 【入門書と一緒に買うべき参考書】 ・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。 ・実践的で効果的なコードの書き方が理解できる。 |
【読んでみた一言】 正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。 | 【読んでみた一言】 深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。 | 【読んでみた一言】 基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。 |
スポンサーリンク