Do~Loop(Until)

今回の目標

  • Do~LoopとUntilを使用して反復処理をできるようになる
  • 説明

    始めに

    本ページは前章で説明した「Do...Loop(While)」を使用できる前提で解説します。ご存じない方は前章をお読みください。
     リンク:Do...Loop(While) の使い方

    継続条件と終了条件

    最初に、『継続条件』と『終了条件』を説明しなければなりません。
    『継続条件』とは、前章のDo...Loop(While)で学習した、ループを継続するための条件です。For文もこれに該当します。
    『終了条件』とは、ループを終了するための条件です。
    例えば、終了条件が『i < 5』なら、iが5未満になったら反復処理を終了します。iが5未満になるまで繰り返す、と言い換えられます。対して、継続条件が『i < 5』なら、iが5未満のときに反復処理を行います。

    Do~Loop(Until) 構文(前判定/後判定)

    早速ですが、Do...Loop(Until)の前判定の構文です。

    Do Until 終了条件 Then
        繰り返したい処理
    Loop
    

    今回のDo...Loop(Until)の構文は前回のDo...Loop(While)の構文と似ており、「While」と書くところを「Until」にします。

    使用サンプルです。

    'B2以降のセルが空白になるまで、売上金を基準に評価を入力
    Sub DoLoopUntil_Sample1()
        Dim i As Long
        i = 3
        Do Until Cells(i, 2) = ""
            If (Cells(i, 4) < 20) Then
                Cells(i, 5) = "不可"
            ElseIf (Cells(i, 4) < 30) Then
                Cells(i, 5) = "可"
            Else
                Cells(i, 5) = "良"
            End If
            i = i + 1
        Loop
    End Sub
    

    『Do Until』の後ろには、終了条件を指定しています。このサンプルではB3が空白か調べ、空白でない場合はD列の売上金を基準にして、E列の評価に成績を入力します。ループのiに1を足し、1行ずつずらしながら繰り返します。

    後判定の基本構文です。

    Do
        繰り返したい処理
    Loop Until 終了条件 
    

    後判定のサンプルです。

    'B2以降のセルが空白になるまで、売上金を基準に評価を入力
    Sub DoLoopUntil_Sample2()
        Dim i As Long
        i = 2
        Do
            i = i + 1
            If (Cells(i, 4) < 20) Then
                Cells(i, 5) = "不可"
            ElseIf (Cells(i, 4) < 30) Then
                Cells(i, 5) = "可"
            Else
                Cells(i, 5) = "良"
            End If
        Loop Until Cells(i + 1, 2) = ""
    End Sub
    

    D列の売上金を基準にして、E列の評価に成績を入力します。ループのiに1を足し、B3が空白か調べ、空白なら終了します。

    確認テスト

    作成中です。

    関連リンク

    ページの先頭へ