【用語集に記載の内容について】
用語集に記載されているメソッドや関数の引数は、VBAエキスパート試験の試験範囲に基づいており、すべての引数を網羅しておりません。
また、書式は公式テキストの記載に準じています。
試験範囲外の引数や詳細については、ヘルプ機能やオブジェクトブラウザーをご参照ください。
【コードをコピーして実行する場合の注意】
文字コードの関係上、半角の「¥」は「/」で表示されるため、当サイトでは全角の「¥」で記載しています。当サイトのコードをコピーして実行する場合は、全角の「¥」を半角の「¥」に変換してください。
Exit Forステートメント
名称 | Exit Forステートメント |
---|---|
説明 | For…NextステートメントまたはFor Each…Nextステートメントの繰り返しを途中で終了させる命令です。 Exit Forステートメントを使用することで、条件を満たした時点で繰り返しを終了し、以降の処理をスキップすることで、無駄な繰り返しを避け、処理を効率化できます。 |
コード例① |
Sub Macro1() Dim i As Integer '1から5まで繰り返し For i = 1 To 5 ' 変数iの値が3になったら繰り返しを終了 If i = 3 Then MsgBox "i = " & i Exit For End If Next i End Sub For…Nextステートメントは、カウンタ変数iに1から5までの値を順に格納し、処理を5回繰り返します。 しかし、Ifステートメント内に「Exit For」が記述されているので、変数iの値が3になったときに、「i = 3」のメッセージボックスを表示し、「Exit For」で、For…Nextステートメントの繰り返しを途中で終了します。 For…Nextステートメントは以下のように処理されます。 i = 1→「If 1 = 3 Then」でFalse i = 2→「If 2 = 3 Then」でFalse i = 3→「If 3 = 3 Then」でTrue → 「i = 3」のメッセージボックスを表示 → 「Exit For」で繰り返し終了" |
コード例② |
Sub Macro2() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets 'Sheet1が見つかったら、繰り返しを終了 If ws.Name = "Sheet1" Then MsgBox "ブック内にSheet1が存在します" Exit For End If Next ws End Sub For Each…Nextステートメントは、アクティブブックのすべてのワークシートをひとつずつ取り出し、繰り返しを実行します。 しかし、Ifステートメント内に「Exit For」が記述されているので、「Sheet1」という名前のシートが見つかった場合に、「ブック内にSheet1が存在します」のメッセージボックスを表示し、「Exit For」でFor Each...Nextステートメントの繰り返しを途中で終了します。 アクティブブック内にワークシート「Sheet1」「Sheet2」が存在する場合、For Each...Nextステートメントは以下のように処理されます。 ws = ワークシート「Sheet1」 → 「ブック内にSheet1が存在します」のメッセージボックスを表示 → 「Exit For」で繰り返し終了 |
カテゴリ | スタンダード |