Excel VBA の繰り返し処理はいくつかありますが、この記事では、For~Nextステートメントの使い方について説明します。
For~Nextの構文
Do~Loopステートメントは、ループを繰り返す回数が決まっていません。
そのため、指定した条件が満たされるまで、永久にループを繰り返します。
For~Nextステートメントはループを繰り返す回数を指定できるため、繰り返す回数が決まっている場合は、For~Nextステートメントを使用します。
構文
For カウンタ変数 = 初期値 To 終了値 ' 実行したい処理 Next カウンタ変数
カウンタ変数は、ループを数える変数です。
For~Nextの例
以下のコードでは、カウンタ変数”i”が1から10までループを繰り返します。
カウンタ変数はデフォルトで、ループするごとに”1″ずつ増えていきます。
ループの中では、カウンタ変数を変数”合計”にiの値を加算しています。
ループを抜けた後、MsgBoxで変数”合計”の値が表示されます。
Sub sample()
Dim i As Integer
Dim 合計 As Integer
合計 = 0
For i = 1 To 10
合計 = 合計 + i
Next i
MsgBox "合計は " & 合計 & " です。"
End Sub
Stepキーワード
For~Nextステートメントでは、デフォルトで1ずつ増加するカウンタ変数を指定しますが、Stepキーワードを使用することで、異なる増加量を指定することができます。
Stepキーワードの例
For i = 1 To 10 Step 2
' 2ずつ増加する処理
Next i
この例では、変数”i”は1から10まで2ずつ増加します。これにより、1, 3, 5, 7, 9といった奇数の値が順番に取得されます。
Exit Forステートメントの利用
繰り返し処理を途中で終了する場合、Exit Forステートメントを使用できます。
Exit Forの例
For i = 1 To 10
If i = 5 Then
Exit For
End If
' 何らかの処理
Next i
この例では、変数”i”が5になると、繰り返し処理が終了します。
まとめ
今回は、Excel VBA For~Nextステートメントの使い方について説明しました。
参考
For...Next ステートメント (VBA) | Microsoft Learn