For Next文を使った繰り返し処理

For ... Next 文を使用することで指定した回数だけ同じ処理を繰り返し行うことができます。ここでは Excel VBA で For ... Next 文を使い繰り返し処理を行う方法について解説します。

(2022 年 06 月 14 日公開 / 2022 年 06 月 14 日更新)

For...Next文を使った繰り返し処理

For ... Next 文の構文は下記のようになります。

For 変数 = 初期値 To 最終値
    (実行する処理1)
    (実行する処理2)
Next 変数

この構文の場合、まず回数をカウントするための整数型の変数を1つ用意します。そしてカウントする回数の初期値の値から最終値まで順に1ずつ増加させていき、その回数だけ実行します。具体的に書くと次のようになります。

Dim i As Integer

For i = 1 To 10
    (実行する処理1)
    (実行する処理2)
Next i

この場合、カウントが1から10まで増加する間繰り返しが行われますので、10回実行されることになります。

例えば1から10までの数を足した値を求めるプログラムは次のようになります。

Dim sum As Integer
Dim x As Integer
Dim i As Integer

sum = 0
x = 1

For i = 1 To 10
    sum = sum + x
    x = x + 1
Next i

またカウンター用の変数は、回数をカウントするだけではなく、実際にその変数に現在のカウントしている値が含まれています。その為、このカウンター用の変数に含まれている値を利用することもできます。例えば先ほどのサンプルは次のように書きかえれます。

Dim sum As Integer
Dim i As Integer

sum = 0

For i = 1 To 10
    sum = sum + i
Next i

カウンター用の変数「i」には、1から順に10までの数値が繰り返しが行われる時に格納されています。つまりこのサンプルは次のようなことを行っているのと同じです。

Dim sum As Integer
Dim i As Integer

sum = 0

i = 1
sum = sum + i

i = 2
sum = sum + i

i = 3
sum = sum + i

i = 4
sum = sum + i

i = 5
sum = sum + i

i = 6
sum = sum + i

i = 7
sum = sum + i

i = 8
sum = sum + i

i = 9
sum = sum + i

i = 10
sum = sum + i

このように一定の回数繰り返す時に利用するだけではなく、ある変数の値を順に変化させて利用したい場合に便利な構文となっています。

サンプルプログラム

では簡単なサンプルで試してみましょう。

Sub テスト()
    Dim sum As Integer
    Dim i As Integer

    sum = 0

    For i = 1 To 10
        sum = sum + i
    Next i

    Range("A1").Value = sum

End Sub

上記のマクロを実行すると次のようになります。

繰り返し処理

増加する量を変更する

デフォルトではカウンターは1ずつ増加しますが、増加する量を1ではなく違う値にすることもできます。この場合は次の構文を使います。

For 変数 = 初期値 To 最終値 Step 増加量
    (実行する処理1)
    (実行する処理2)
Next 変数

例えば2から開始して10まで増加させる場合で、増加する量が1ずつではなく2ずつ増加させる場合は次のようになります。

Dim i As Integer

For i = 2 To 10 Step 2
    (実行する処理1)
    (実行する処理2)
Next i

この場合カウンターに入る値は「2、4、6、8、10」の各数値となり、繰り返し処理は5回行われることになります。

-- --

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

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。