
VBAの大きな魅力のひとつとして繰り返し処理を設定できることです。
Excelは多機能で、同じ結果を得るためのアプローチは数パターンある場合が多いですが、繰り返し処理だけはVBAの専売特許といえます。
Excel VBAではこのような繰り返し設定を行なうためのステートメントは数種類用意されています。
今回は指定した回数分の繰り返し処理を設定できるFor Nextステートメントについて解説していきます。
For Nextステートメントの基本構文
1 2 3 |
For カウンタ変数 = 開始値 To 終了値(Step変数) 処理 Next カウンタ変数 |
カウンタ変数
回数をカウントするための整数系(データ型:Integer)の変数のことです。
なお、変数名は任意で決めてOKです。
(変数については以下の記事を参考にしてください。)
【Excel VBA】変数の基礎知識まとめ | Excelを制する者は人生を制す ~No Excel No Life~
【Excel VBA】変数のデータ型の種類まとめ | Excelを制する者は人生を制す ~No Excel No Life~
開始値
カウンタ変数の開始値を設定します。
終了値
カウンタ変数の終了値を設定します。
Step変数
通常開始値から終了値まで1ずつ加算されていきますが、この加算値を2以上にしたい場合に設定が可能です。
その場合、終了値の後に「半角スペース+Step+半角スペース+加算値(整数)」を入力することになります。
例:加算値が2の場合
For カウンタ変数 = 開始値 To 終了値 Step 2
加算値はマイナスも設定が可能です。(その場合、開始値と終了値を逆にする必要があります。)
処理
繰り返しを行なう処理を設定します。
使用例
A列に順番に1から10までの値をA1セルから代入していきたいとします。
1 2 3 4 5 6 |
Sub ループ①() Dim i As Integer For i = 1 To 10 Cells(i, 1).Value = i Next i End Sub |
2行目でカウンタ変数をInteger型で設定します。変数名は”i”としています。
今回の開始値はA1セルから10回繰り返し処理を行なうので3行目の開始値は1、終了値は10となります。
今回の条件は「A列に順番に1から10までの値をA1セルから代入」なので4行目は「Cells(i, 1).Value = i」となります。
「Cells(i, 1).Value」でA列の1~10行目の値を示し、代入演算子(=)で行数と同じ値が代入されるように設定しています。
5行目に「Next i」で締めて終了になります。
マクロの動作イメージ
A1~10セルが最初はブランクになっています。
マクロを起動すると、A1~10セルにはそれぞれ1~10の値が代入されます。(行数と同じ数)
まとめ
For Nextステートメントなどの繰り返し処理(ループ)はVBE経由でしか設定できません。
規則性のある反復処理はこちらのステートメントを設定することで事務処理を劇的に簡略化することができるので、ぜひとも覚えていきましょう!