For Next文を使った繰り返し処理
VBA を使った繰り返し処理の一つである For Next 文の使い方です。 For Next 文で指定した回数だけ繰り返し処理を行いたい場合に使用します。ここでは Excel VBA で For Next 文を使った繰り返し処理を行う方法について解説します。
(Last modified: )
For...Nextの使い方
VBA で繰り返し処理を行う方法の一つである For...Next
の使い方です。書式は次の通りです。
For 変数 = 初期値 To 最終値 実行する処理 Next 変数
繰り返し回数をカウントするための変数を用意します。変数に最初に初期値を代入し繰り返し処理を 1 回行います。 1 回繰り返し処理が行われると変数の値は自動的に +1 されます。変数の値が最終値になったあと、最後の繰り返し処理を行って For...Next
の次の処理へ処理が移ります。
次のサンプルでは変数に 1 から 10 までの数値を加算した結果を求めるものです。カウント用の変数に 1 から 10 までの数値を順に代入し、繰り返し処理を行います。
Option Explicit Sub テスト() Dim sum As Integer Dim i As Integer sum = 0 For i = 1 To 10 sum = sum + i Debug.Print "i = " & i & ", Sum = " & sum Next i End Sub
今回のサンプルでは変数 i
に 1 から 10 までの数値を 1 刻みで順に入力し、繰り返し処理を行います。繰り返し処理の中では変数 sum
にカウント用の変数 i
の値を使って数値を加算しています。 10 回繰り返し処理を行ったあと For...Next
の次の処理に移ります。
それでは実際にプログラムを実行してみます。
イミディエイトウィンドウに次のように出力されました。
このようにあらかじめ決められた回数だけ繰り返し処理を行いたい場合に For...Next
を使用すると便利です。
繰り返し処理毎に増加する量を変更する
明示的に指定しない場合、繰り返し処理が一回行われる毎にカウント用の変数の値は +1 されます。この増加する量を変更することができます。書式は次の通りです。
For 変数 = 初期値 To 最終値 Step 増加量 実行する処理 Next 変数
繰り返し毎に増加させる量を Step
のあとで指定します。例えば繰り返し毎に +3 させたい場合は 3 を指定してください。
For 変数 = 初期値 To 最終値 Step 3 実行する処理 Next 変数
増加する量を変更した場合、初期値から値を増加させていったときに最終値とぴったり一致せずに超えてしまう場合があります。その場合、最終値を超えた値がカウント用の変数に代入された時点で繰り返し処理は終了となり For...Next
の次の処理へ移ります。
それでは先ほどのサンプルを次のように変更してみます。 Step
のあとの 2 を指定しているので、繰り返し処理が行われるたびにカウント用の変数の値が +2 されます。
Option Explicit Sub テスト() Dim sum As Integer Dim i As Integer sum = 0 For i = 1 To 10 Step 2 sum = sum + i Debug.Print "i = " & i & ", Sum = " & sum Next i End Sub
この場合、カウント用の変数 i
には 1, 3, 5, 7, 9, 11 と順番に数値が代入されて繰り返し処理が行われます。変数に入力される値が最終値に指定した 10 と同じ場合は繰り返し処理を行って終わりとなりますが、最終値を超えた場合は繰り返し処理は行われずに For...Next
の次の処理へ移ります。そのため、今回は 1 + 3 + 5 + 7 + 9 = 25 の結果がイミディエイトウィンドウに表示されます。
それでは実際にプログラムを実行してみます。
イミディエイトウィンドウに次のように出力されました。
-- --
Excel VBA で For Next 文を使った繰り返し処理を行う方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。