MENU

【初心者向け】VBAのDo While / Do Untilを完全マスター!条件による繰り返し処理の使い分け解説

A子さん

「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 WhileDo Until
繰り返し条件条件がTrueの間続く条件がFalseの間続く
感覚「〜の間は」処理を続ける「〜になるまで」処理を続ける
終了の書き方Do While i < 10Do 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を活用!

終了条件が明確でない繰り返しに向いている

WhileUntil は条件の「True/False」で繰り返し方が異なる

Exit Do で柔軟なループ制御も可能

関連記事リンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次