繰り返しを途中で終了する(Exit For)
Exit Forで見つかった時点に探索を終了し、ループ後の処理へ進みます。
実行前に確認
- Exit Forは一番内側のForだけを抜けます。Do LoopならExit Doを使います。Sub全体は終了しません。
- Excel実機での動作は未確認です。コピーした練習用ブックで試してください。
1サンプルコード
Option Explicit
Sub Example7019()
Dim values As Variant
Dim i As Long
Dim foundIndex As Long
values = VBA.Array(12, 7, 25, 9)
foundIndex = -1
For i = LBound(values) To UBound(values)
If values(i) > 20 Then
foundIndex = i
Exit For
End If
Next i
If foundIndex = -1 Then
MsgBox "20を超える値はありません"
Else
MsgBox "最初に見つかった値:" & values(foundIndex)
End If
End Sub図で見る繰り返しを途中で終了する(Exit For)の流れ
イメージ図Exit Forで見つかった時点に探索を終了し、ループ後の処理へ進みます。
入力・開始時
配列は12・7・25・9
実行する処理
20を超える25を見つけたらExit For
結果
最初に見つかった値:25。末尾9は調べない
セルの値や既存のファイルを変更しない例です。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
- 1
デスクトップ版Excelで練習用ブックを.xlsm形式で保存します。Alt+F11→[挿入]→[標準モジュール]を選び、空のモジュールの先頭にこの例全体を貼り付けます。
- 2
書き換えは不要です。まず例の値のままで試し、値や変数名を変える場合は同じ名前の箇所も揃えます。
- 3
Example7019のSub内にカーソルを置き、F5キーで実行します。
- 4
25を見つけるとループを抜け、「最初に見つかった値:25」と表示されます。