この記事で解決できる3つの疑問
A子さん同じ処理を何度も手作業でやっていてうんざりしている…
「繰り返し処理」の種類がいくつもあって混乱している…
それぞれの違いと使い分け方をサクッと知りたい!
結論:VBAには3種類の繰り返し処理がある、それぞれの得意分野で使い分けよう!
| 種類 | 特徴 | 使いどころ |
|---|---|---|
| For~Next | 回数が決まっている繰り返しに強い | A1~A10に同じ値を入れるなど |
| For Each | 範囲やコレクション(セル・シート等)の繰り返しに強い | 特定の範囲に同じ処理をする場合 |
| Do While / Do Until | 条件が満たされる(or 満たされない)限り続ける | 終了条件が「途中で決まる」場合 |
目次
For~Next:定回数の繰り返しに最適
Dim i As Integer
For i = 1 To 10
Cells(i, 1).Value = "OK"
Next i
処理回数が決まっているときに使うのが基本。
Stepを使えば増減幅も自由自在。
📎 詳細記事:【初心者向け】Excel VBAでFor文を使いこなす!
For Each:オブジェクト(セルなど)の集合を1つずつ処理
Dim cell As Range
For Each cell In Range("A1:A10")
cell.Value = "チェック済"
Next cell
範囲やワークシート、ブックなど「まとまったもの」に最適。
Forとの違いはインデックス(iなど)を使わない点。
Do While / Do Until:条件が変わるまで繰り返す
Dim i As Integer
i = 1
Do While Cells(i, 1).Value <> ""
i = i + 1
Loop
条件が「いつ終わるかわからない」処理に向いている。
無限ループに注意(条件が変わらないとずっと動き続けます)
まとめ:迷ったらこの使い分け!
- 回数が決まってる → For
- 範囲・集合を1個ずつ → For Each
- 途中で終わる条件 → Do While / Do Until
まずは「For文」から始めて、慣れてきたら「For Each」や「Do~Loop」で処理の幅を広げましょう!
関連記事リンク

コメント