【ExcelVBA・マクロ】繰り返し処理の基本![For~Next]と[Do~Loop]の違いと使い分け

ExcelVBA

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コードが書けます

まずは簡単な例から試し、「どちらのループが適しているか」を考えながら使ってみましょう。

コメント

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