繰り返し作業を減らす!VBAのループ処理入門(For / Do While)

Excel VBA

はじめに

Excelでの作業は「同じ処理の繰り返し」が多いものです。

  • 100行のデータを1行ずつチェック
  • 各セルに同じ計算式を入れる
  • 複数シートを順番に処理する

こうした単純作業は、VBAのループ処理 を使えば一気に自動化できます。
この記事では、初心者向けに VBAの基本ループ(For文 / Do While文) を解説し、すぐに使えるサンプルコードを紹介します。


VBAのループとは?

ループとは「一定の条件を満たすまで処理を繰り返す」仕組みのことです。
Excel VBAには主に次のループ構文があります。

  • For Next文:指定回数だけ繰り返す
  • For Each文:コレクションや範囲の要素を順番に処理
  • Do While文:条件が真の間、処理を繰り返す
  • Do Until文:条件が成立するまで処理を繰り返す

まずは代表的な For NextDo 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作業の自動化スキルが一段階レベルアップします。
ぜひこの記事のサンプルをコピーして試し、業務に取り入れてみてください。

コメント