For Nextループ - Stepの指定

Step

Forループで、キーワードStepを使用すると、カウンタ変数を指定した値ずつ増減することができます。

次の例では、ループを繰り返すごとにカウンタ変数 j の値は 2 ずつ増えます。

ループが終了すると、変数totalは 2、4、6、8、および 10 を合計した値になります。

プログラム2b

Sub CalcTotal()
  Dim j, total
  
  For j = 2 To 10 Step 2
    total = total + j
  Next j
  
  MsgBox "合計は " & total & " です"
  
End Sub

負の刻み幅

カウンタ変数を減少させるには、キーワード Stepに負の値を指定します。 その場合、終了値は開始値より小さい値を指定しなければなりません。

次の例では、ループを繰り返すごとにカウンタ変数 j の値は 2 ずつ引かれます。

ループが終了すると、変数totalは 10、8、6、4、および 2を合計した値になります。

プログラム2c

Sub CalcTotal_2()
  Dim j, total
  
  For j = 10 To 2 Step -2
    total = total + j
  Next j
   
  MsgBox "合計は " & total & " です"
  
End Sub

実数の刻み幅

Stepに整数でなく実数を指定することもできますが、開始値と終了値の値の指定には注意が必要です。

次の例では、ループを繰り返すごとにカウンタ変数 j の値は 0.1 ずつ増えていきます。

実行してみると、変数totalは 1.0、1.1、1.2、1.3、1.4、1.5、1.6、1.7、1.8 および 1.9を合計した値 14.5 になります。

プログラム3

Sub CalcTotal_3()
Dim j, total For j = 1 To 2 Step 0.1 total = total + j Next j MsgBox "合計は " & total & " です" End Sub

1.0、1.1、1.2、1.3、1.4、1.5、1.6、1.7、1.8、1.9 および2.0を合計した値 16.5 を求めたい時は、

 For j = 1 To 2.01 Step 0.1

のように実数の誤差を想定して指定する必要があります。

プログラム4

Sub CalcTotal_4()
  Dim j, total

  For j = 1 To 2.01 Step 0.1
    total = total + j
  Next j
    
  MsgBox "合計は " & total & " です"
  
End Sub

メニューページへ