今回説明するFor文こそ、学校や職場で繰り返ししているエクセルの同じような処理を、自動化・効率化できる大事なテクニックです。
またFor文を使うと、繰り返し行う同じ処理のプログラム部分は1回だけ書けばよく、繰り返す回数を指定するだけでOKです。
初めてプログラミングする人にとって、繰り返しの処理のイメージは難しいところなので、くわしく解説していきます。
For文の書き方
For カウンタ変数 = 開始値 to 終了値
(処理)
Next
カウンタ変数が終了値を超えるまで、処理を繰り返し実行します。
繰り返し回数を管理するための変数が、カウンタ変数です。このカウンタ変数に開始値と終了値を設定することで、繰り返し回数を指定できます。
プログラムの動きとしては、最初にカウンタ変数に開始値がセットされ、処理を実行するごとにカウンタ変数が+1されます。
カウンタ変数が終了値を超えた時、繰り返し処理が終了します。
繰り返し処理の流れ
- カウンタ変数に開始値をセット
- カウンタ変数が、終了値が超えていないか判定する
超えた時は、繰り返し処理を終了する→Nextの後ろのプログラムへ
超えていない時は、For文の中の処理を実行する - カウンタ変数の値を自動で+1する
- 判定処理の2に戻る
For文の使い方
実際にカウンタ変数の動きが見れる、次のプログラムを作って実行してみてください。
1 2 3 4 5 6 7 8 9 10 11 |
Sub RensyuFor1() Dim i As Long For i = 1 To 3 MsgBox i Next End Sub |
実行すると、次のような1から3の値を表示するメッセージボックスが3回表示されます。
今回のプログラムでは、「i = 1」 の部分で、カウンタ変数iに開始値の1がセットされています。その右側の「to 3」では終了値を指定しているので、iが3を超えたら繰り返しが終わりという意味になります。
For文の中では、MsgBoxを使ってiの値をメッセージボックスに表示しています。このメッセージボックスを表示する処理が、何回も繰り返し行われます。
For文のプログラム自体は3行しかありませんが、カウンタ変数の値を変化させながら、繰り返し処理のプログラムは何回も動いています。実際のプログラムの動きは、次のようになります。初めての繰り返し処理なので、プログラムの動きを1つずつ読んで、頭のなかでイメージしてください。
カウンタ変数iに開始値1をセット
【カウンタ変数が1の時】
判定:カウンタ変数は3を超えているか?
結果:超えていないので、メッセージ表示処理を実行
加算:カウンタ変数の値を自動で+1 ⇒カウンタ変数は2
【カウンタ変数が2の時】
判定:カウンタ変数は3を超えているか?
結果:超えていないので、メッセージ表示処理を実行
加算:カウンタ変数の値を自動で+1 ⇒カウンタ変数は3
【カウンタ変数が3の時】
判定:カウンタ変数は3を超えているか?
結果:超えていないので、メッセージ表示処理を実行
加算:カウンタ変数の値を自動で+1 ⇒カウンタ変数は4
【カウンタ変数が4の時】
判定:カウンタ変数は3を超えているか?
結果:超えているので、繰り返し処理を終了
- 繰り返し行う処理部分は字下げをして、プログラムを見やすくしましょう。
- Nextの後ろにカウンタ変数(今回はi)を書いている参考書もありますが、特に理由がなければ省略してOKです。
まとめ
VBAで業務の効率化などを目指す場合、この繰り替え処理は必須の知識です。
最初のうちは、繰り返しの流れ・動きをなかなか頭の中だけではイメージできません。そのため、今回の説明ように「i=1の時、」「i=2の時、」・・・と紙に書いて、繰り返しの動きを整理してみましょう。
何度もプログラムを組むことで、この繰り返しの動きを頭の中だけでイメージできるようになってきます。