【初心者向け】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をコピーしました!

この記事を書いた人

かもろぐ屋へようこそ。

Microsoft製品が大好きな現役社内SEです。
本業では、業務改善・運用・トラブル対応・効率化など、いわゆる「社内の困った」を何でも屋のように対応しています。

このブログでは主に、

VBA
Power Apps
AI

について、実体験ベースで発信しています。

特に最近は、AIを使ったアプリ開発やブログ運営の自動化にハマっています。
「AIがあれば簡単に作れる」と思って始めた結果、普通に壊れたり、詰んだり、課金したりしながら泥臭く進めています。

キラキラした成功談というより、

「実際どうだったのか」
「どこで詰まったのか」
「初心者でも本当にできるのか」

を、できるだけリアルに残すタイプのブログです。

なお、絶賛婚活中です。

コメント

コメントする

CAPTCHA


目次