プログラミングで繰返処理ができるようになれば、いっきに作業効率の向上がみこめるかもしれません。
こちらでVBAでの具体的な「For ~ Next」の使い方をご紹介します。
繰返処理とは
こちらは条件に達するまで繰返処理をさせたいときに使います。
おなじ処理をなんども実行させたいとき、ひとつずつコードを記述していたらすごいコード行数になりますよね?
たとえば、Excelのリストが100行あってそこに同じ処理を実行させたい場合「1行目から100行目までひとつずつ記述する」という場合です。
これはあまり現実的ではありませんので、こういった場合に「繰返処理」を検討しましょうというわけです。
For ~ Nextの使い方
基本的な使い方
繰返処理をしたいときに「For ~ Next」を使います。
また、繰返処理には「変数」をつかいます。
この「変数」にたいして値を順番に代入をすることによって、操作対象を順番に定義するといった考え方です。
まずは具体的なコードを使ってご説明します。
こちらが記述したい内容です。
【スタート】マクロの名前:for_next
(変数の作成)「変数:box」を数字型として定義する
(繰返処理の開始)「変数:box」に1から10までを順番に代入して繰返実行する
セル(「変数:box」,1)に「変数:box」の値を代入する
(繰返処理の終了)繰返処理の開始へ戻る
【ゴール】こちらがコードの内容です。
Sub for_next()
Dim box As Long
For box = 1 To 10
Cells(box, 1).Value = box
Next
End Sub実行結果はこちらです。
それでは、コードのポイントについて解説をします。
For 「変数」 = (開始したい数字) To (終了したい数字)
(ここに「変数」をつかって繰返処理した内容を記述)
Next
「変数」に、「開始したい数字」から「終了したい数字」までが順番に代入されていきます。
さきほどの例の場合、数字の「1」から「10」が「変数:box」に順に代入されていますので、「変数:box」の値は「1,2,3,4,5,6,7,8,9,10」と変化します。
Cells(box, 1).Value = box
上記コードの5行目
つまり、「変数:box」に代入される値の変化にともなって、「セルの位置」と「右辺の値」が変化することになります。
この部分をさらに詳しくみていきましょう。
| 「変数:box」に代入される数字 | cellsの値 | セルの位置 | 右辺の値 |
| 1 | (1,1) | A1 | 1 |
| 2 | (2,1) | A2 | 2 |
| 3 | (3,1) | A3 | 3 |
| 4 | (4,1) | A4 | 4 |
| 5 | (5,1) | A5 | 5 |
| 6 | (6,1) | A6 | 6 |
| 7 | (7,1) | A7 | 7 |
| 8 | (8,1) | A8 | 8 |
| 9 | (9,1) | A9 | 9 |
| 10 | (10,1) | A10 | 10 |
ご理解いただけましたでしょうか?
代入される変数によって「セルの位置」と「右辺の値」が順番に変化することによって、セルに「1」から「10」の値が入力されてたことになります。
ステップによる段階的な繰返処理|Step
さきほどご説明した構文に「Step」を追加することで、「開始したい数字」から「終了したい数字」までに加算される数字を指定することができます。
For「変数」 = (開始したい数字)To(終了したい数字)Step(数)
(ここに「変数」をつかって繰返処理した内容を記述)
Next
ちなみに「Step」を指定しない場合は、「1」として認識されます。
たとえば、このような例で考えてみましょう。
- 開始したい数字…1
- 終了したい数字…10
- Step…2
数字が「2ずつ」加算されていくので、結果はこのようになります。
| 繰返回数 | 数字 |
| 1 | 1 |
| 2 | 3 |
| 3 | 5 |
| 4 | 7 |
| 5 | 9 |
まとめ
繰返処理「For ~ Next」の使い方についてご説明をいたしました。
プログラミングでは繰返処理はよく使われている考え方ですので、しっかりとコードの書き方を理解をしておきましょう。
これを使いこなすことができたら、できることの幅がよりいっそう広がりますよ!