決まった回数繰り返す

広告

今までの構文では条件式によって繰り返しを継続するかどうかを決めていました。今回は決まった回数だけ繰り返しを行う場合の構文について見ていきます。

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

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

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

サンプルプログラム

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

testloop4.bas

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回行われることになります。

( Written by Tatsuo Ikura )