はじめに
Excelでの作業は「同じ処理の繰り返し」が多いものです。
- 100行のデータを1行ずつチェック
- 各セルに同じ計算式を入れる
- 複数シートを順番に処理する
こうした単純作業は、VBAのループ処理 を使えば一気に自動化できます。
この記事では、初心者向けに VBAの基本ループ(For文 / Do While文) を解説し、すぐに使えるサンプルコードを紹介します。
VBAのループとは?
ループとは「一定の条件を満たすまで処理を繰り返す」仕組みのことです。
Excel VBAには主に次のループ構文があります。
- For Next文:指定回数だけ繰り返す
- For Each文:コレクションや範囲の要素を順番に処理
- Do While文:条件が真の間、処理を繰り返す
- Do Until文:条件が成立するまで処理を繰り返す
まずは代表的な For Next と Do While を学ぶのがおすすめです。
For Next文の使い方
基本構文
For i = 開始値 To 終了値 [Step 増分]
' 繰り返したい処理
Next i
サンプル1:1から10までの数を表示
Sub ForSample1()
Dim i As Integer
For i = 1 To 10
Debug.Print i
Next i
End Sub
結果:イミディエイトウィンドウに 1〜10 が出力される
サンプル2:シートの1列目に1〜100を入力
Sub ForSample2()
Dim i As Long
For i = 1 To 100
Cells(i, 1).Value = i
Next i
End Sub
実務効果:連番を一瞬で作成できる
サンプル3:偶数だけ出力(Step指定)
Sub ForSample3()
Dim i As Integer
For i = 2 To 20 Step 2
Debug.Print i
Next i
End Sub
Step を指定すると「増分」を変えられます。
For Each文の使い方
範囲やコレクションの要素を順番に処理する場合に便利です。
サンプル4:選択範囲のセルを順番に処理
Sub ForEachSample()
Dim c As Range
For Each c In Selection
c.Value = c.Value * 2
Next c
End Sub
実務効果:選択したセルを一括で変換できる
Do While文の使い方
基本構文
Do While 条件式
' 繰り返す処理
Loop
サンプル5:セルに値がある間、処理を繰り返す
Sub DoWhileSample()
Dim i As Long
i = 1
Do While Cells(i, 1).Value <> ""
Cells(i, 2).Value = Cells(i, 1).Value * 2
i = i + 1
Loop
End Sub
実務効果:リストの終わりまで自動処理できる
Do Until文の使い方
基本構文
Do Until 条件式
' 繰り返す処理
Loop
サンプル6:空白セルに到達するまで処理
Sub DoUntilSample()
Dim i As Long
i = 1
Do Until IsEmpty(Cells(i, 1).Value)
Cells(i, 2).Value = Cells(i, 1).Value * 10
i = i + 1
Loop
End Sub
実務効果:「空白まで処理」という形で書けるため直感的。
実務での活用例
- データ加工:商品コードを順番にチェックし、特定条件でフラグを付ける
- シート処理:複数シートをループして同じ計算を実行
- ファイル操作:フォルダ内のファイルを順番に処理(応用)
ループを覚えると「1行ずつ手作業」から解放され、数百〜数千行の処理も一瞬で終わります。
まとめ
- VBAのループ処理は「繰り返し作業を自動化する」ための基本
- For Next:回数が決まっている処理に使う
- For Each:セルやシートなどを順番に処理
- Do While / Do Until:条件に応じて繰り返す処理に使う
- 実務ではデータ加工やシート操作などで大活躍
ループ処理を習得すれば、Excel作業の自動化スキルが一段階レベルアップします。
ぜひこの記事のサンプルをコピーして試し、業務に取り入れてみてください。


コメント