ループ処理-前判定-(Do Until)

前判定により条件が成り立つまで同じ処理を繰り返すループ処理のコード

'アクティブセルが10以上になるまで1を足す
Do Until ActiveCell >= 10
ActiveCell = ActiveCell + 1
Loop

ループ処理には、種類が複数あります
大きく分けると「For」と「Do」の2つがあり、それらが少し派生します

なかでも使いやすいのは「Do」の「Until」を使用する形です
「Until」はループの終了条件を指定するものです
条件式の書き方は他のコードと同じ書き方をし、このDoの後に条件式を書くことを前判定といいます(後判定はこちら)
Untilは条件式が真(True)になった時に終了します

これとは別に「While」という終了条件判定もありますが、こちらは終了の条件ではなくループを続ける条件を指定します
基本的にループ処理を作ることを考えたときに、終了条件の方が考えやすいと思うので「While」の説明は割愛します
条件式の作り方でどちらも同じ動きをするため、両方つかいこなす必要もありません

無限ループについて

ループ処理には常に付いて回るエラーが、無限ループです

たとえばこの記事の条件では10以上となっています
これを「Do Until ActiveCell = 10」として、セルの数値が11以上であった場合「12…13…14…」と加算されていき、永遠に10になることが無いので無限ループに陥ります

ループを作成した場合は、しっかりループが終了する事を確認してから処理の実行を行うようにしてください

もし無限ループに陥った場合は、「Ctrl+Break」か「Esc」で処理の実行をキャンセルさせるようにします(うまくいかない場合もあります)

ただ、この無限ループは意図せず発生した場合にエラーとして認識しますが通常は監視用無限ループというプログラミングもあります
なんらかの条件が成り立つまで待機するようなプログラムを作る際に使用します

ですが、VBAはプロシージャの複数同時実行は得意ではありません
1つのプロシージャを監視無限ループさせて、別のプロシージャで別の処理を並行して行うことは基本的に出来ません、というか安定しないので出来てもしないでください

この作りではデバッグもうまく機能しません、別のプロシージャに切り替えるようなデバッグの方法がありません

これを実現したい場合はVBAではなく、VBScriptという別のプログラミング言語がありますのでそちらを応用します