第8講 その他のDo...Loop ステートメント
第2話 Do Until〜Loop文

今回学ぶDo Until〜Loop文の基本構造は
Do Until 条件式
   ・
   ・
   ・
Loop 
です。Untilは『まで』という意味です。
Do Until〜Loop文は条件式が真(正しい)になるまで、
ループを繰り返します。
つまり、Do While〜Loop文とは反対で、
条件式が偽(正しくない)ときループを繰り返し、
真になるとループから抜け出します。

1から10まで加えるプログラム例を考えると、
Private Sub CommandButton1_Click()

    Dim i As Integer, wa As Integer

    wa = 0
    i = 1
    Do Until i = 11
        wa = wa + i
    i = i + 1
    Loop

    Cells(6, 1) = wa

End Sub

また、魔方陣プログラムその1をDo Until〜Loop文で改良した例は

Private Sub CommandButton1_Click()

    Dim i As Integer, j As Integer, w As Integer

    i = 1
    Do Until i > 4
        j = 1
        Do Until j > 4
            Cells(i + 4, j + 2) = 4 * (i - 1) + j
            j = j + 1
        Loop
        i = i + 1
    Loop

    i = 1
    Do Until i > 5
        Cells(i + 12, i + 2) = Cells(9 - i, 7 - i)
        Cells(i + 12, 7 - i) = Cells(9 - i, i + 2)
        j = 1
        Do Until j > 4
            If (i <> j And i <> 5 - j) Then Cells(i + 12, j + 2) = Cells(i + 4, j + 2)
            j = j + 1
        Loop
        i = i + 1
    Loop

    Range("g10:g12").Select
    Selection.HorizontalAlignment = xlRight
    Cells(10, 7) = "横"
    Cells(11, 7) = "合"
    Cells(12, 7) = "計"
    Range("a1").Select
    i = 1
    Do Until i > 4
        w = 0
        j = 1
        Do Until j > 4
            w = w + Cells(i + 12, j + 2)
            j = j + 1
        Loop
        Cells(i + 12, 7) = w
        i = i + 1
    Loop

    Cells(18, 1) = "右斜め対角線合計"
    w = 0
    i = 1
    Do Until i > 4
        w = w + Cells(i + 12, i + 2)
        i = i + 1
    Loop
    Cells(18, 5) = w

    Cells(19, 1) = "左斜め対角線合計"
    w = 0
    i = 1
    Do Until i > 4
        w = w + Cells(i + 12, 7 - i)
        i = i + 1
    Loop
    Cells(19, 5) = w

End Sub

となどが考えられます。

第1話へ 第3話へ

講義トップへ

数学研究室に戻る