
ExcelVBA 同じ処理を何度も繰り返すことがよくあります。繰り返し処理(ループ構文)を使うことで、大量のデータを効率的に処理できます。使い方や注意点など、サンプルコードをもとに具体的に解説します。
📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!
👇実務で“そのまま使える”テンプレ付きで、コピペするだけ!
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き
目次
Excel VBA 繰り返し構文|シーン
以下のシーンで利用します。
1.データの一括処理(100行分のデータを1行ずつ処理)
2.空白セルを検索し、自動で色をつける。
3.一定の条件を満たすまでループ処理を実行する。
Excel VBA 繰り返し構文|サンプルコード
指定回数の繰り返し(For Next)
標準モジュール(数値を使って指定回数ループする )
Option Explicit
Sub ForNextサンプル()
Dim i As Integer
For i = 1 To 10
Cells(i, 1).Value = "行 " & i ' A列に行番号を入力
Next i
MsgBox "処理完了!", vbInformation
End Sub
1行目~10行目のA列に「行 1」「行 2」...と入力する。
Next i で i を1ずつ増やして繰り返す。
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
範囲内のセルを処理(For Each Next)
標準モジュール(セル範囲のデータを1つずつ処理)
Option Explicit
Sub ForEachサンプル()
Dim rng As Range
For Each rng In Range("A1:A10") ' A1:A10を順番に処理
rng.Value = rng.Row ' 行番号を入力
Next rng
MsgBox "処理完了!", vbInformation
End Sub
For Each はセル範囲を対象に処理するのに便利です。
条件を満たす間繰り返す(Do While)
標準モジュール(条件が満たされている間ループ)
Option Explicit
Sub DoWhileサンプル()
Dim i As Integer
i = 1
Do While Cells(i, 1).Value <> "" ' A列が空白でない間繰り返す
Cells(i, 2).Value = "OK"
i = i + 1 ' 次の行へ
Loop
MsgBox "処理完了!", vbInformation
End Sub
A列のデータがある間、B列に "OK" を入力する。
i = i + 1 を忘れると 無限ループ になる。
条件を満たすまで繰り返す(Do Until)
標準モジュール(条件が満たされるまでループ)
Option Explicit
Sub DoUntilサンプル()
Dim i As Integer
i = 1
Do Until Cells(i, 1).Value = "" ' A列が空白になるまで繰り返す
Cells(i, 2).Value = "OK"
i = i + 1
Loop
MsgBox "処理完了!", vbInformation
End Sub
A列のデータがなくなるまで繰り返す。
Do Until は 条件が偽の間 繰り返すので Do While と逆の動作。
無限ループに注意
標準モジュール(ループの終了条件を適切に設定しないと、無限ループ になりExcelがフリーズすることがあります)
Option Explicit
Sub 無限ループ()
Dim i As Integer
i = 1
Do While i > 0 ' iが常に正のため、無限ループ!
Cells(i, 1).Value = "ループ"
Loop
End Sub
i = i + 1 のように カウンタを増やす
Do While i < 1000 などの 上限を設定する
Excel VBA 繰り返し構文|まとめ
| 構文 | 特徴 | 用途 |
| For Next | 回数が決まっているループ | 1~100行目を順番に処理 |
| For Each Next | セル範囲などを1つずつ処理 | 指定範囲のセルにデータ入力 |
| Do While | 条件が 真の間 繰り返す | データがある間、処理を続ける |
| Do Until | 条件が 偽の間 繰り返す | データが空白になるまで繰り返す |
「Excel VBAで自動化するコードのベースが習得できる解説書」
Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。