
「For文以外にも繰り返しの書き方があるって聞いたけど、Do While とか Do Until って何が違うの?」
結論:条件が「満たされるまで続ける」のがDo While、「満たされたら抜ける」のがDo Untilです!
「何かの条件を満たすまで繰り返したい」ときに使えるのが、Do While / Do Until 構文です。
終了条件が決まっていない場合や、ユーザーの入力待ちなどに便利です。
目次
Do While / Do Untilとは?
Excel VBAで繰り返し処理を行う手段のひとつ。
条件を見てから繰り返す or 繰り返してから条件を判断するという違いがあり、柔軟なループが可能です。
基本構文と使い方
◆Do While の基本構文
Do While 条件 ' 条件がTrueの間、繰り返される Loop
◆Do Until の基本構文
Do Until 条件 ' 条件がFalseの間、繰り返される Loop
【ポイント】
While
は 「条件が成立している間」 繰り返すUntil
は 「条件が成立するまで」 繰り返す
WhileとUntilの違い(早見表)
比較項目 | Do While | Do Until |
---|---|---|
繰り返し条件 | 条件がTrueの間続く | 条件がFalseの間続く |
感覚 | 「〜の間は」処理を続ける | 「〜になるまで」処理を続ける |
終了の書き方 | Do While i < 10 | Do Until i = 10 |
実践例:空白セルに当たるまでループする
Dim i As Integer i = 1 Do While Cells(i, 1).Value <> "" Cells(i, 2).Value = "データあり" i = i + 1 Loop
このコードは、A列の空白セルに当たるまで処理を繰り返し、B列にメッセージを表示します。
無限ループに注意!条件の正しい書き方
以下のように、カウンターの増加を忘れると無限ループになります。
Do While Cells(i, 1).Value <> "" ' i = i + 1 を忘れるとずっと同じセルを見続ける! Loop
✅対策:ループ中のカウンター更新を忘れずに
Exit Doとの合わせ技
Exit Doとの合わせ技
特定の条件で途中終了させたい場合は、Exit Do
を使います。
Do While i < 100 If Cells(i, 1).Value = "終了" Then Exit Do End If i = i + 1 Loop
まとめ:条件ループならDo While / Do Untilを活用!
終了条件が明確でない繰り返しに向いている
While
と Until
は条件の「True/False」で繰り返し方が異なる
Exit Do
で柔軟なループ制御も可能
コメント