VBAのループ処理:どのループを選ぶべきか?

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コードを書きましょう!

コメント

タイトルとURLをコピーしました