Exitステートメントは”ループを抜けたり、プロシージャーを終了させる”ときに記述します。
そして、ループ内の任意の場所に記述できるので、柔軟な制御ができたりします。
Exitステートメントの種類
Exitステートメントには5種類あります。
種類 | 処理内容 |
Exit For | For~Next・For Each~Nextによるループを終了する |
Exit Do | Do~Loopによるループを終了する |
Exit Function | Function プロシージャの処理を終了する |
Exit Property | Property プロシージャの処理を終了する |
Exit Sub | Sub プロシージャの処理を終了する |
Exitステートメントの参考コード
プロシージャーを終了させる
1 2 3 4 5 |
Sub Sample1() Debug.Print "Call前です" Call SampleExit Debug.Print "Call後です" End Sub |
1 2 3 4 5 |
Sub SampleExit() Debug.Print "Exit前です" Exit Sub Debug.Print "コレは出力されないハズです!" End Sub |
上のコードでは実行時のデバッグされた内容から、Exitステートメントがどのように動くかの確認をとれるようにしています。
そして、その処理の流れは下のようになっていることが分かります。
1.イミディエイトウィンドウで”Call前です”が出力される。
2.Callで「SampleExit」Sub プロシージャを呼び出す。
3.「SampleExit」内の”Exit前です”がイミディエイトウィンドウに出力される。
4.Exitステートメントで「SampleExit」Sub プロシージャを終了させ、呼び出し元の「Sample1」に戻る。
5.イミディエイトウィンドウで”Call後です”が出力される。
Forループを終了させる
1 2 3 4 5 6 7 8 9 10 11 12 |
Sub sampl2() Dim i As Long For i = 1 To 10 If i <= 3 Then Debug.Print i & "回目です" Else Exit For End If Next i End Sub |
上のコードはデバッグされた内容から、Ifで条件を設け、Forのループが条件通りに抜けるかを確認します。
コードのざっくりとした説明は下の通りです。
【処理の流れ(〇行目)】
5→6→7→10→11→6→7→10→11→6→7→10→11→8→9→12
【コード解説】
5行目:10回繰り返すように設定している。
6行目:「 i が3以下(True)の場合」に7行目の処理を行う。
7行目:「i+回目です」をイミディエイトウィンドウに出力する。
8行目:「 i が3を超えている(False)場合」に9行目の処理を行う。
9行目:ExitステートメントでForループを終了する。
〇おすすめのVBA参考書ランキング!
1位 | 2位 | 3位 |
---|---|---|
Excel VBA 脱初心者のための集中講座 | パーフェクトExcel VBA | ExcelVBA 実戦のための技術 |
初心者~中級者 | 中級者 | 初心者~中級者 |
【初心者が手に取るべき参考書】 ・「書籍+動画」で圧倒的に理解しやすい入門書になっている。 ・丁寧で詳しい解説でボリューム感がある。 | 【より深い理解をしたい方にお勧めな参考書】 ・テーマに対して丁寧な解説・適度な深さで解説されている。 ・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。 | 【入門書と一緒に買うべき参考書】 ・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。 ・実践的で効果的なコードの書き方が理解できる。 |
【読んでみた一言】 正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。 | 【読んでみた一言】 深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。 | 【読んでみた一言】 基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。 |
スポンサーリンク