■ Do Until … Loop ステートメント
□ 機能 : 条件を満たすまで処理を繰り返します
□ 形式 : Do Until 条件式
処理
Loop
■ Do While … Loop ステートメント
□ 機能 : 条件を満たさなくなるまで処理を繰り返します
□ 形式 : Do While 条件式
処理
Loop |
Aの列にデータが並んでいます。
「Do Until … Loop」を使ってデータが存在する最後の行を表示
してみましょう。
Sub test()
Dim x As Integer
x = 1
Do Until Cells(x + 1, 1).Value = "" 'Do Until 条件式
x = x + 1 '処理
Loop 'Loop
Cells(x, 2).Value = "ここまで"
End Sub |
|
 |
1行目から順番に「次の行のセルが空白」という条件で繰り返し処理していきます。8行目の時点で次の行が空白なのでLoopから抜けます。
最後の行は8行目なので右のように表示されました。 |
|
 |
| 上で紹介したのは条件式を満たさない場合に処理を繰り返す方法です。 |
|
 |
右のように処理をしてから条件式に移る形もあります。
先に処理を行うので条件を満たしていても最低一回は処理が実行されることになります。
上でやった作業をこの形でやるとこのようになります。
Sub test()
Dim x As Integer
x = 0
Do 'Do
x = x + 1 '処理
Loop Until Cells(x + 1, 1).Value = "" 'Loop Until 条件式
Cells(x, 2).Value = "ここまで"
End Sub |
|
 |
| Untilとは逆でWhileは条件を満たさない場合にLoopを抜けます。 |
|
 |
Whileも同じように処理を行ってから条件式に移る形が使えます。
全部で4種類のDo 〜 Loop ステートメントの使い方を紹介しましたが、私個人的には一番最初のDo Until … Loopの形だけ覚えておいて、条件式の部分を工夫して色々な場合に応用すればいいと思います。 |
|
 |
|