繰り返し処理やプロシージャの実行途中で処理を終了するには、Exit文を使用します。具体的には、For~Next文、Do~Loop文、SubやFunctionの各プロシージャを抜ける場合等で使用します。このExit文の使い方について紹介します。
構文
記述方法は以下の様になります。
Exit[ステートメント]
[説明]:
処理中に処理を中断・終了させます。
[ステートメント] |
各処理に合わせたステートメントを記述します。 |
ステートメント | 機能 |
Exit Do | Do~Loop文の途中で終了します。 |
Exit For | For~Next文の途中で終了します。 |
Exit Sub | Subプロシージャの途中で終了します。 |
Exit Function | Functionプロシージャの途中で終了します。 |
使い方
使い方について具体的に説明します。
(例①)Exit Doを使用した処理を途中で終了させる記述方法
Exit Doを使用した処理を途中で終了させる記述方法について説明します。
[プログラミング例]:
Sub サンプル()
'↓処理①
Dim 行 As Double
'↓処理②
行 = 0
'↓処理③
Do Until 行 = 5
If (行 = 2) Then
Exit Do
End If
MsgBox 行
行 = 行 + 1
Loop
End Sub
処理の流れは以下の通りとなります。
[処理①]:変数定義
Dimによる変数定義となります。
[処理②]:変数に初期値セット
[処理①]で定義した変数:行に初期値の0をセットします。
[処理③]:Do Until~Loop文の記述
変数:行の値が5になるまでMsgBoxで値を表示しますが、IF文の条件判断で変数:行の値が2の場合は、処理を途中で中断して終了させます。
---------------------------------
1回目の処理では初期値の0が変数:行にセットされているため、0<5でループ処理の継続条件に当てはまることから「0」が表示されます。その後に変数:行に0+1=1がセットされます。
---------------------------------
2回目の処理では変数:行に1がセットされているため、1<5でループ処理の継続条件に当てはまることから「1」が表示されます。その後に変数:行に1+1=2がセットされます。
---------------------------------
3回目の処理では変数:行に2がセットされているため、2<5でループ処理の継続条件には当てはまりますが、IF文の条件判断でExit Do文が実行され、途中で処理が終了します。
---------------------------------
※上記ののプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)
②最初に以下の様に表示されます。MsgBoxで「0」が表示されます。
③次に以下の様に表示されます。MsgBoxで「1」が表示されます。
※2回目の処理でExitによりDo~Loop文を抜けてしまうため、以降のMsgBoxは表示されません。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
Exit Doを使用した処理の途中で終了させる記述方法についての説明は以上です。
(例②)Exit Forを使用した処理を途中で終了させる記述方法
Exit Forを使用した処理を途中で終了させる記述方法について説明します。
[プログラミング例]:
Sub サンプル()
'↓処理①
Dim 行 As Double
'↓処理②
For 行 = 1 To 5
If (行 = 3) Then
Exit For
End If
MsgBox 行
Next
End Sub
処理の流れは以下の通りとなります。
[処理①]:変数定義
Dimによる変数定義となります。
[処理②]:For~Next文の記述
変数:行に1から5の値を順次セットし、セット毎にMsgBoxで値を表示しますが、IF文の条件判断で変数:行の値が3の場合は、処理を途中で中断して終了させます。
---------------------------------
1回目の処理では1が変数:行にセットされるため「1」が表示されます。
---------------------------------
2回目の処理では2が変数:番号にセットされるため 「2」が表示されます。
---------------------------------
3回目の処理では3が変数:番号にセットされていますが、IF文の条件判断でExit For文が実行され、途中で処理が終了します。
---------------------------------
※上記ののプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)
②最初に以下の様に表示されます。MsgBoxで「1」が表示されます。
③次に以下の様に表示されます。MsgBoxで「2」が表示されます。
※3回目の処理でExitによりFor~Next文を抜けてしまうため、以降のMsgBoxは表示されません。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
Exit Forを使用した処理の途中で終了させる記述方法についての説明は以上です。
おわりに
Exit文はIF文等の条件判断処理との組み合わせで使用する事が多いです。是非有効に活用してみて下さい。