ExcelVBAで「同じ処理を何度も繰り返したい」と思ったことはありませんか?
そんなときに欠かせないのが 繰り返し処理(ループ処理) です。
VBAには代表的なループ構文として For~Next文 と Do~Loop文 があります。
本記事では、両者の特徴や違い、使い分けのポイントを解説していきます。
[For~Next] と [Do ~Loop] の違い
初めに[For~Next]と[Do~Loop]の違いを説明すると、この通りになります。
項目 | For Next文 | Do Loop文 |
---|---|---|
繰り返し回数 | あらかじめ決まっている | 決まっていない(条件で判断) |
主な用途 | 1~100までの数を処理など | セルの値がある間処理、特定条件まで処理 |
書き方の特徴 | For i = 1 To 10 など数値で管理 | Do While 条件 など条件で制御 |
簡単に言うと、
◆繰り返しの回数が決まっている場合 → For~Next
◆条件が満たされるまで繰り返したい場合 → Do~Loop
このような使い分けができると思われます。
それでは次に両者の動作について、サンプルコードを使って詳しく解説していきます。
For Next文とは?
「回数が決まっている処理」に使う繰り返し構文 です。
例えば「1から10までの数字を順番に処理する」場合に便利です。
サンプルコード
Sub ForNextSample()
Dim i As Integer
Dim total As Integer
total = 0
For i = 1 To 10
total = total + i
Next i
MsgBox "合計は " & total & " です"
End Sub

Do Loop文とは?
「条件を満たす間、処理を繰り返す」構文 です。
例えば、最終行がわからない(変動する)場合など、繰り返しの回数が事前にわからない場合や使います。
サンプルコード
Sub DoLoopSample()
Dim i As Integer
Dim total As Integer
i = 1
total = 0
Do While Cells(i, 1).Value <> ""
total = total + Cells(i, 1).Value
i = i + 1
Loop
MsgBox "合計は " & total & " です"
End Sub

まとめ
- For Next文 → 回数が決まっている繰り返しに最適
- Do Loop文 → 条件が満たされるまで繰り返す処理に最適
- 使い分けを理解すると、より効率的なVBAコードが書けます
まずは簡単な例から試し、「どちらのループが適しているか」を考えながら使ってみましょう。
コメント