関数・メソッド

無限ループを意図的に実行する【Do Loop】【ExcelVBA】

無限ループ

マクロでループ処理を試行していると、ループ処理を抜けられず無限ループに陥ることがあります。
無限ループが発生すると制御不能になるので基本的には回避するべき事象ですが
あえて無限ループを使用したい場面もあると思います。

意図的に無限ループを発生させるには条件式に 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]キーを押してください。

関連記事

コメント

タイトルとURLをコピーしました