Excel VBA: 繰り返し処理や関数を途中で終了する4つの方法

Excel VBAのコーディング中、特定の条件でループや関数を途中で終了したい場合の手法を解説します。

Excel VBAでループや関数を途中で終了させる方法って何かありますか?

もちろん、Exit DoExit ForExit SubExit Functionの4つの方法が主に使われますよ。詳しく解説しましょう。

目次

Exit Do の使用方法

Exit Doは、Excel VBAでDo...Loop文内でのループを途中で終了する場合に使用するステートメントです。

特定の条件を満たしたときにループの実行を停止し、ループの後の処理に移るための命令となります。


以下のサンプルプログラムでは、数字のカウントを行っています。

iが5より大きくなった場合、Exit DoによってDo...Loopのループを途中で終了します。

Dim i As Integer
i = 1
Do
    If i > 5 Then
        Exit Do
    End If
    Debug.Print i  ' 結果として1から5までの数字が出力される
    i = i + 1
Loop

Exit For の使用方法

Exit Forは、Excel VBAのFor...Next文を使用している際に、ループを途中で終了するためのステートメントです。

特定の条件を満たしたときにループを終了し、For...Nextループの後の処理に移ることができます。


以下のサンプルプログラムは、数字を1から10までカウントします。

ただし、iが5になった時点で、Exit ForによってFor...Nextループが途中で終了します。

Dim i As Integer
For i = 1 To 10
    If i = 5 Then
        Exit For
    End If
    Debug.Print i  ' 結果として1から4までの数字が出力される
Next i

このサンプルコードの実行結果として、1, 2, 3, 4という数字が順に出力され、5以降の数字は出力されません。

Exit Sub の使用方法

Exit Subは、Excel VBAのSubプロシージャ内で、特定の条件を満たした場合やエラーが発生した際などに、プロシージャを途中で終了するためのステートメントです。

この命令を実行すると、それ以降のSubプロシージャ内のコードは実行されずに、呼び出し元のプロシージャや関数に制御が戻されます。


以下のサンプルプログラムは、与えられた数字が5より大きいかをチェックするプロシージャを示しています。

もし数字が5より大きければ、Exit Subによってプロシージャが途中で終了し、メッセージボックスは表示されません。

Sub CheckNumber(num As Integer)
    If num > 5 Then
        MsgBox "The number is greater than 5."
        Exit Sub
    End If
    MsgBox "The number is 5 or less."
End Sub

このプロシージャをCheckNumber(6)として呼び出すと、”The number is greater than 5.”というメッセージが表示され、その後の”5以下の数字です”というメッセージは表示されません。

Exit Function の使用方法

Exit Functionは、Excel VBAのFunctionプロシージャ内で、特定の条件を満たした場合やエラーが発生した際などに、関数を途中で終了するためのステートメントです。

この命令を実行すると、それ以降のFunctionプロシージャ内のコードは実行されずに、呼び出し元のプロシージャや関数に制御が戻されます。

また、Exit Functionの前に設定された戻り値が関数の結果として返されます。


以下のサンプルプログラムは、与えられた数字が正か負かを判断する関数を示しています。

もし数字が0であれば、Exit Functionによって関数が途中で終了し、”Zero”という文字列を返します。

Function CheckSign(num As Integer) As String
    If num > 0 Then
        CheckSign = "Positive"
        Exit Function
    ElseIf num < 0 Then
        CheckSign = "Negative"
        Exit Function
    End If
    CheckSign = "Zero"
End Function

この関数をCheckSign(0)として呼び出すと、”Zero”という文字列が返されます。

まとめ

Excel VBAのコーディング中、特定の条件でループや関数を途中で終了したい場合の手法を解説しました。

  • Exit FunctionはExcel VBAのFunctionプロシージャ内で使用されるステートメント。
  • 関数を途中で終了し、それ以降のコードの実行をスキップする。
  • Exit Functionの前に設定された戻り値が関数の結果として返される。
  • 特定の条件を満たした場合やエラーハンドリングに役立つ。

以前からExit Functionの具体的な使い方がよくわからなかったのですが、この解説で明確に理解することができました。特にサンプルコードが非常に参考になりました!

Exit Functionはコードの効率化やエラーハンドリングに非常に役立つツールです。ただし、コードの流れや可読性を損なわないように注意深く使用することが重要です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次