EXCEL VBA - For 文

For 文

For 文とは、初期値から最終値までの決まった範囲で処理を繰り返す場合に用いる文です。For 文の構文は以下のとおりです。

For 変数 = 初期値 To 最終値
    実行する処理
Next 変数
For 文の構文

For 文の具体的な例としては、以下のようなプログラムになります。

Dim sum As Integer
Dim i As Integer

sum = 0

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

カウンターを任意の数だけ増減させたい場合は、Step を付け加えます。以下のプログラムでは、カウンターは +2 ごと増加します。

Dim sum As Integer
Dim i As Integer

sum = 0

For i = 1 To 10 Step 2
    sum = sum + i
Next i
For 文

繰り返し文を任意のタイミングで抜けたい場合は、Exit for を使用します。

Dim sum As Integer
Dim i As Integer

sum = 0

For i = 1 To 10
    sum = sum + i
    
    if sum = 10 Then
        Exit For
    End If
    
Next i
For 文

For 文では Next を省略した場合、コンパイルエラーとして「Next に対応する For がありません。」と表示されます。

Dim sum As Integer
Dim i As Integer

sum = 0

For i = 1 To 10
    sum = sum + i
'' Next i が定義されていない
For 文

また、「Next に対応する For がありません。」のメッセージは For 文の中にある If 文の End If がない場合にも発生します。この場合、Next が定義されているにも関わらず、原因が別の場所にあるためデバッグが難しくなります。

Dim sum As Integer
Dim i As Integer

sum = 0

For i = 1 To 10
    sum = sum + i
    
    if sum = 10 Then
        Exit For
    '' End If が定義されていない。
    
Next i
For 文

For Each 文

For Each 文とは、配列やコレクションなどのグループの各要素に対して繰り返し処理を行う場合に使用します。For 文とは異なり、繰り返しの初期値と最終値を指定する必要がありません。ただし、For Each 文では要素を受け取る変数の型はバリアント型、またはオブジェクト型で指定する必要があります。

Dim List() As Variant
List = Array(1, 2, 3, 4, 5)

Dim Var As Variant
For Each Var In List
    Debug.Print (Var)
Next Var
For Each 文

関連記事