この記事で解決できる3つの疑問

「繰り返し処理」の種類がいくつもあって混乱している…
それぞれの違いと使い分け方をサクッと知りたい!
結論: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」で処理の幅を広げましょう!
関連記事リンク
コメント