無限ループ
マクロでループ処理を試行していると、ループ処理を抜けられず無限ループに陥ることがあります。
無限ループが発生すると制御不能になるので基本的には回避するべき事象ですが
あえて無限ループを使用したい場面もあると思います。
意図的に無限ループを発生させるには条件式に True を指定し
Ifステートメントと Exit Do を組み合わせることで柔軟なプログラムになります。
無限ループを活かしたサンプルコード
Sub Sample() Do While True '結果がTrueになるまでループする If InputBox("「キャンセル」と入力すると終了") = "キャンセル" Then Exit Do 'Tureならループを抜け出す End If MsgBox("もう一度入力してください") 'Falseならメッセージを表示する Loop End Sub
注意点
- 必ず Exit Do を記述してループを抜け出してください。
- ループ処理を強制終了したい場合は[Esc]キーまたは[Ctrl]+[Break]キーを押してください。
コメント