Excel VBAでは、複数のForループが入れ子になっている場合、内側のループや外側のループから適切なタイミングで抜け出すことが重要です。Exit Forステートメントを使用すると、条件に応じてこれらのループから効率的に脱出することが可能です。この記事では、入れ子のForループでExit Forを使用する方法について詳しく解説します。
Exit Forの入れ子する基本構文
入れ子のForループでは、それぞれのループに対してExit Forを使用することができます。Exit Forはそのステートメントが含まれるループからのみ脱出します。
For i = 1 To 10
For j = 1 To 10
If 条件A Then
Exit For ' 内側のループから抜ける
End If
Next j
If 条件B Then
Exit For ' 外側のループから抜ける
End If
Next i
Exit Forの入れ子する実践的な例
例【二次元配列の検索】
二次元配列内で特定の値を検索し、その値が見つかったらすぐに両方のループを抜ける例です。
Sub ExitNestedLoops()
Dim arr(1 To 5, 1 To 5) As Integer
Dim i As Integer, j As Integer
Dim target As Integer
target = 25 ' 探している値
Dim Hantei As Boolean
' 配列の初期化
For i = 1 To 5
For j = 1 To 5
arr(i, j) = i * j
If arr(i, j) = target Then
MsgBox "Found " & target & " at (" & i & ", " & j & ")"
Hantei = True
Exit For ' 内側のループを抜ける
End If
Next j
If Hantei = True Then Exit For ' 外側のループを抜ける
Next i
End Sub
このサンプルコードでは、目的の値が見つかった時点で内側のループを抜け、次に外側のループも即座に抜けます。これにより、不要な計算を回避し、プログラムの効率を向上させることができます。
まとめ
Exit Forを活用することで、VBAの入れ子のループをより効率的に制御することができます。これにより、不要な計算を省略し、プログラムのパフォーマンスを向上させることが可能になります。また、コードの読みやすさも向上し、メンテナンスが容易になります。