VBAでBreakキーワードを使うときに知っておきたいこと

VBAのBreakキーワードとは

VBAにおいて、Breakキーワードはループ処理や条件分岐処理を強制的に終了するためのキーワードです。
ループ処理や条件分岐処理が無限ループに陥った場合や、特定の条件を満たした場合に処理を終了する場合に使用されます。

Breakキーワードを使用する例

以下に、Forループ処理でBreakキーワードを使用する例を示します。

この例では、Forループ処理で変数iが5の場合にBreakキーワードであるExit Forを使用してループ処理を終了します。
このため、変数iが5になった時点で処理が終了し、1から4までの数字が出力されます。

同様に、Do Whileループ処理でもBreakキーワードを使用することができます。以下に例を示します。

この例では、Do Whileループ処理で変数iが5の場合にBreakキーワードであるExit Doを使用してループ処理を終了します。
このため、変数iが5になった時点で処理が終了し、1から4までの数字が出力されます。

BreakキーワードとContinueキーワードの違い

Breakキーワードとは異なり、Continueキーワードはループ処理や条件分岐処理を中断せずにスキップするためのキーワードです。
つまり、ループ処理や条件分岐処理が継続する中で、ある条件を満たした場合に処理をスキップするために使用されます。
例えば、ある条件を満たした場合に処理をスキップして、次のループ処理に進む場合などに使用されます。

以下は、Continueキーワードを使用した例です。

この例では、Forループ処理で変数iが5の場合にContinueキーワードを使用してループ処理をスキップします。
このため、変数iが5の時だけ処理がスキップされ、1から4、6から10までの数字が出力されます。

Breakキーワードの代わりにExit Do/Forを使用する場合

Breakキーワードではなく、Exit DoやExit Forを使用することでもループ処理や条件分岐処理を終了することができます。
Exit DoやExit Forは、Breakキーワードと同じようにループ処理や条件分岐処理を強制的に終了しますが、その処理が終了するまでに必要な後始末の処理を行った上で、終了処理を行うため、Breakキーワードよりも安全に使用することができます。

ただし、Exit DoやExit Forは、条件分岐処理の中で使用すると、それ以外の処理を終了してしまうため、注意が必要です。

注意点

また、ループ処理や条件分岐処理がネストされている場合にBreakキーワードを使用すると、上位の処理もすべて終了してしまうため、注意が必要です。
この場合には、Exit ForやExit Doの代わりに、上位の処理をスキップするためのExit SubやExit Functionを使用することが望ましいです。

コメント