【VBA言語】for文について【解説】
for文とは
VBA(Visual Basic for Applications)における「for文」は、繰り返し処理を行うための構文です。繰り返し処理は、特定の処理を指定回数繰り返したい場合や、範囲内の全ての要素を順番に処理したい場合に使用します。
例えば、ある数値を加算したり、配列の要素を一つずつ確認したりする時に便利です。VBAの「for文」を使うことで、コードを簡潔に保つことができます。
基本的な構文
VBAにおける基本的な「for文」の構文は以下の通りです:
For i = 初期値 To 終了値 [Step 増分]
' 処理内容
Next i
この構文では、i
という変数が、初期値
から終了値
まで、指定された増分
で繰り返し処理を行います。増分は省略することができ、省略した場合はデフォルトで1
となります。
実際の例
次に、実際の「for文」の使用例をいくつか紹介します。
例1: 1から10までの数を表示
For i = 1 To 10
MsgBox i
Next i
このコードは、1から10までの数字を順番に表示する処理です。i
が1から10までの値を取る度にMsgBox
でその値を表示します。
例2: 5から1までカウントダウン
For i = 5 To 1 Step -1
MsgBox i
Next i
このコードは、5から1までカウントダウンする処理です。増分に-1
を指定することで、逆順でカウントダウンします。
ネストしたfor文
「for文」は、別の「for文」の中に入れることができます。これをネストした「for文」と呼びます。複数の繰り返し処理を組み合わせる場合に非常に役立ちます。
例えば、2次元配列を処理する場合などに使われます。
例: 2次元配列の処理
Dim arr(2, 2) As Integer
arr(0, 0) = 1
arr(0, 1) = 2
arr(0, 2) = 3
arr(1, 0) = 4
arr(1, 1) = 5
arr(1, 2) = 6
For i = 0 To 1
For j = 0 To 2
MsgBox arr(i, j)
Next j
Next i
このコードでは、2次元配列arr
の要素を順番に表示します。i
は行、j
は列を表し、arr(i, j)
で各要素にアクセスします。
for文の範囲変更
「for文」の範囲は、開始時に指定した値や終了時に指定した値によって決まりますが、Step
を使って増分を変更することもできます。
例: 2ずつ増加させる
For i = 0 To 10 Step 2
MsgBox i
Next i
このコードでは、i
が0から10まで2ずつ増加しながら処理されます。つまり、0, 2, 4, 6, 8, 10
が順番に表示されます。
for文の終了
「for文」の終了にはNext
が使われます。Next
は、次の繰り返しに進むための指示を出す命令です。i
の変数は自動的にインクリメントされ、終了条件に達するとループが終了します。
また、Exit For
を使って、ループを途中で終了させることもできます。例えば、特定の条件が満たされたときにループを早期終了させたい場合に便利です。
例: 条件付きでループを終了
For i = 1 To 10
If i = 5 Then
Exit For
End If
MsgBox i
Next i
このコードでは、i
が5になった時点で「for文」が終了します。Exit For
が実行されると、次のNext
に進むことなくループが終了します。