これまでにIf文、Select Case文を使用した分岐を練習しました。いずれの文を使用するにしても、条件式をしっかり組み立てられるように繰り返し練習しておいてください。
さて、処理の分岐と同様に多くの場面で登場する処理が、繰り返し処理です。
繰り返し処理に必要なものがループカウンター、つまり「今何回目の繰り返し処理であるか」を記録しないといけません。VBAでは、Lesson4で触れた「変数」という仕組みを使って記録します。
繰り返しの方法には、For ~ Next文を使用する方法と、Do ~ Loop文を使用する方法があります。
使い分けの目安ですが、For ~ Next文は繰り返す回数が分かっているとき、Do ~ Loop文は繰り返す回数が分からないときに使います。
では、さっそく10回の繰り返しに挑戦してみましょう。
ここでは、変数Xに1を代入し、繰り返すごとに1を加算します。
なお、Long型として宣言した変数の初期値は、「0」です。
使用される際は、そちらの環境で十分テストのうえ使用してください。
Sub ForTEST() Dim i As Long '変数「i」を長整数型と宣言します。ループカウンターとして使用します。 Dim X As Long '変数「X」を長整数型と宣言します。繰り返しごとに1を加算します。 For i = 1 To 10 ← iの初期値を1とし、10になるまで繰り返すことを定義します。 X = X + 1 ← 変数 X に1を足します。 Next i ← i に1を足します。 MsgBox X ← X に代入されている値を表示します。 End Sub
変数Xの初期値は「0」、繰り返すごとに1を加算することを10回繰り返した結果、メッセージボックスに表示される値は、
「10」です。思ったとおりの結果が得られたでしょうか?
次は、変数iの初期値を1ではなく、2とします。
2が10になるまでの間、Xに1を加算することを繰り返すので、
Sub ForTEST_2() Dim i As Long '変数「i」を長整数型と宣言します。ループカウンターとして使用します。 Dim X As Long '変数「X」を長整数型と宣言します。繰り返しごとに1を加算します。 For i = 2 To 10 X = X + 1 Next i MsgBox X End Sub
メッセージボックスに表示される値は、「9」です。
For ~ Next文は、カウンターの数え方を変化させることができます。
Stepというキーワードを追加しました。
これにより、0回→2回→4回→6回→8回→10回とカウントさせることができます。
つまりXに1が加算される処理が5回行われるということです。
早速実行してみましょう。
Sub ForTEST_3() Dim i As Long '変数「i」を長整数型と宣言します。ループカウンターとして使用します。 Dim X As Long '変数「X」を長整数型と宣言します。繰り返しごとに1を加算します。 For i = 1 To 10 Step 2 X = X + 1 Next i MsgBox X End Sub
メッセージボックスに表示される値は、「5」です。思ったとおりの結果が得られたでしょうか?
コメントをどうぞ!