同じ処理を指定回数だけ繰り返すには、「For Next」ステートメントを使います。
繰り返し処理は、VBAに限らず、あらゆるプラグラム言語において使用する基本的な処理です。
最初は見よう見まねでOKですので、ぜひFor Nextステートメントの基本を理解してくださいね。
For Nextステートメントとは
For Nextステートメント は、繰り返したい処理を、指定した回数分繰り返すことができるものです。
繰り返し処理の実例として、例えば、Excelを使っているときに、あるセルを何回も手作業でコピペした経験があるかと思います。
「同じセルを何回もコピペする」という作業は、まさに繰り返し処理です。
For Nextを使えば、このような同じ作業(処理)を自動的に行わせることができるのです。
For Nextステートメントの記述方法
For カウンタ = 初期値 To 到達値
処理
Next カウンタ
For ~ Nextを「Forループ」と呼びます。
繰り返し回数を数えるカウンタが、初期値から到達値に達するまで繰り返し処理を行います。
カウンタは、Nextに到達すると、現在のカウンタの値が+1(1が加算)になります。※カウンタおよび加算値はあらかじめ自由に設定できます。
文字だけだとわかりにくいと思いますので、For Nextの実例を示します。
For Nextステートメントの実例
セルA1~A4に、数値3を入力するという繰り返し処理をするFor Nextを使ったコードです。
For i = 1 To 4 ’ カウンタ:i 、初期値:1、到達値:4
Cells( i , 1 ) .Value = 3 ’ 繰り返したい処理
Next i ’Next の右に書かれている i は、カウンタです。
上のコードを順番に解説します。
- カウンタ「i」に初期値1が入ります。 ※カウンタに「i」を使うのは、For文の慣例です。
- Cells( i , 1 )は、Cells( 1, 1 ) となり、Cells( 1, 1).value=3 でセルA1に数値3が入ります。
- Next i で、カウンタ「 i 」が+1され(i=2)、Forループの最初の行に戻ります。
- Cells( i , 1 )は、Cells( 2, 1 ) となり、Cells( 2, 1).value=3 でセルA2に数値3が入ります。
- Next i で、カウンタ「 i 」が+1され(i=3)、Forループの最初の行に戻ります。
- Cells( i , 1 )は、Cells( 3, 1 ) となり、Cells( 3, 1).value=3 でセルA3に数値3が入ります。
- Next i で、カウンタ「 i 」が+1され(i=4)、Forループの最初の行に戻ります。
- カウンタ「i」の到達値は4です。現在 i = 4 なので、今回がForループの最終になります。
- Cells( i , 1 )は、Cells( 4, 1 ) となり、Cells( 4, 1).value=3 でセルA4に数値3が入ります。
- Next i まで来たので、Forループは終了となります。
ちなみに、実行結果は以下のとおりです。
カウンタの増減の変え方
前項ではNext まで来るとカウンタが+1されました。
カウンタの増減数は、以下のように記述することで変更することができます。
For カウンタ = 初期値 To 到達値 Step 増減数
処理
Next カウンタ
具体的には以下のように記述します。
For i = 1 To 4 Step 2 ’ カウンタ:i 、初期値:1、到達値:4 、増減値:+2
Cells( i , 1 ) .Value = 3 ’ 繰り返したい処理
Next i ’Next の右に書かれている i は、カウンタです。
実行結果は、以下のようになります。
コメント