VBA|指定回数だけ処理を繰り返す(For Next)

エクセルVBA VBAの基礎・入門



同じ処理を指定回数だけ繰り返すには、「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 は、カウンタです。

上のコードを順番に解説します。

  1. カウンタ「i」に初期値1が入ります。 ※カウンタに「i」を使うのは、For文の慣例です。
  2. Cells( i , 1 )は、Cells( 1, 1 ) となり、Cells( 1, 1).value=3 でセルA1に数値3が入ります。
  3. Next i で、カウンタ「 i 」が+1され(i=2)、Forループの最初の行に戻ります。
  4. Cells( i , 1 )は、Cells( 2, 1 ) となり、Cells( 2, 1).value=3 でセルA2に数値3が入ります。
  5. Next i で、カウンタ「 i 」が+1され(i=3)、Forループの最初の行に戻ります。
  6. Cells( i , 1 )は、Cells( 3, 1 ) となり、Cells( 3, 1).value=3 でセルA3に数値3が入ります。
  7. Next i で、カウンタ「 i 」が+1され(i=4)、Forループの最初の行に戻ります。
  8. カウンタ「i」の到達値は4です。現在 i = 4 なので、今回がForループの最終になります。
  9. Cells( i , 1 )は、Cells( 4, 1 ) となり、Cells( 4, 1).value=3 でセルA4に数値3が入ります。
  10. 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 は、カウンタです。

実行結果は、以下のようになります。




VBAの基礎・入門
ブイサバ【Excel VBAサバイバル】~とりあえずここに来れば解決できる~

コメント

タイトルとURLをコピーしました