【VBA】IF文の条件に応じて処理を停止する方法!ExitSubの使い方!

VBA実行中に、ある条件にあてはまった場合に処理を停止したい。

それならIF文の中に、あるコードを差し込むだけで解決ですね。

 

というわけでこの記事では、IF文の条件に応じて途中でVBAの処理を停止する方法をご紹介していきます。

 

それではさっそくやっていきましょう。

 

スポンサーリンク

IF文条件に応じて処理を停止する方法

IF文中に処理を停止するには以下の1文をコードに記述するだけです。

Exit Sub

とはいえ、これだけではどうゆう使い方なのかよくわからないと思いますので、実際の使用例をみてみましょう。

 

スポンサーリンク

Exit Sub の使用例

以下が先ほど紹介したExit Subの使用例です。

Sub exit_test()
    Dim i As Integer, rnd_num As Integer
    For i = 1 To 30
        rnd_num = WorksheetFunction.RandBetween(0, 9)
        If rnd_num <> 9 Then
            Cells(i, 1) = rnd_num
        Else
            Exit Sub
        End If
    Next
End Sub

この処理でやっていることは以下の通りです。

①RandBetween関数で0から9までの整数をランダムに発生させる

②①でつくった数字が9以外ならA列 i 行目のセルに①の数値を記入

③①でつくった数字が9ならExit Subで処理を停止

④③の処理に該当するまで同じ処理を30回繰り返す

 

先ほどのコードはIF文のElse条件でExitを使っていますが、最初のIF文で記述するとしたら以下のようになります。

Sub exit_test()
    Dim i As Integer, rnd_num As Integer
    For i = 1 To 30
        rnd_num = WorksheetFunction.RandBetween(0, 9)
        If rnd_num = 9 Then
            Exit Sub
        Else
            Cells(i, 1) = rnd_num
        End If
    Next
End Sub

 

やっていることは先ほどとほとんど同じです。

 

これらのコードを念のため実行してみましょう。

結果は以下の通りです。

サンプルコードの実行結果

 

きちんと9以外の数値がランダムに入力されていますね。

※9回目の処理で乱数に9が入りExit Subによって処理が停止されたというわけです。

 

問題なくExit Subが機能していそうですね。

 

また、以下の記事では、For文だけを停止するExit Forというスキルもご紹介しています。

興味があればこちらもぜひご覧ください。

【VBA】For文を途中で中止する!Exit Forの使い方!

 

スポンサーリンク

おわりに

というわけで今回はIF文の条件に応じて処理を停止するExit Subの使い方をご紹介しました。

意味のない処理はなるべく行わないで済むように、要所で組み込んでみましょう。

 

このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

過去記事一覧

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。

⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。

↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました