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...Nextの使い方(2)

このようにあらかじめ決められた回数だけ繰り返し処理を行いたい場合に 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 の結果がイミディエイトウィンドウに表示されます。

それでは実際にプログラムを実行してみます。

繰り返し処理毎に増加する量を変更する(1)

イミディエイトウィンドウに次のように出力されました。

繰り返し処理毎に増加する量を変更する(2)

-- --

Excel VBA で For Next 文を使った繰り返し処理を行う方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。