VBAのループには For Next, Do While, Do Until の3種類がありますが、どれを使うべきか迷うことがあります。
ここでは、それぞれのループが適したケースを解説します。
目次
1. For Next:回数が決まっている場合
特定の回数だけ処理を繰り返すなら「For Next」 を選びましょう。
使用例:1から10までの合計を求める
Dim i As Integer, total As Integer
total = 0
For i = 1 To 10
total = total + i
Next i
Debug.Print "合計:" & total '55 と表示
✅ ポイント:
- 繰り返す回数が決まっている 場合に最適
Step
を使うと増減幅を変更できる
2. Do While:条件を満たす間ループする
「条件を満たしている限り」処理を続けたい場合は「Do While」 を使います。
使用例:セルにデータがある限り、処理を続ける
Dim i As Integer
i = 1
Do While Cells(i, 1).Value <> ""
Debug.Print Cells(i, 1).Value
i = i + 1
Loop
✅ ポイント:
- データの終わりが分からない場合に最適(例:表の行数が可変)
- 条件が True の間、繰り返す
3. Do Until:条件を満たすまでループする
「特定の条件が成立するまで」ループしたいなら「Do Until」 を使います。
使用例:セルが空白になるまで繰り返す
Dim i As Integer
i = 1
Do Until Cells(i, 1).Value = ""
Debug.Print Cells(i, 1).Value
i = i + 1
Loop
✅ ポイント:
- 「条件を満たすまで繰り返す」場合に最適
Do While
とは条件の判定が逆(False の間 ループする)
4. どのループを選ぶべき?
使用目的 | 適したループ |
---|---|
繰り返す回数が決まっている | For Next |
条件を満たしている間 繰り返す | Do While |
条件を満たすまで繰り返す | Do Until |
セルのデータがなくなるまで処理 | Do While / Do Until |
一定回数のループ+途中終了 | For Next + Exit For |
条件が不明なデータの処理 | Do While / Do Until |
5. まとめ
- 回数が決まっているなら「For Next」
- 条件がTrueの間 繰り返すなら「Do While」
- 条件がFalseの間 繰り返すなら「Do Until」
それぞれのループを適切に使い分けて、効率的なVBAコードを書きましょう!
コメント