VBA実行中に、ある条件にあてはまった場合に処理を停止したい。
それならIF文の中に、あるコードを差し込むだけで解決ですね。
というわけでこの記事では、IF文の条件に応じて途中でVBAの処理を停止する方法をご紹介していきます。
それではさっそくやっていきましょう。
IF文条件に応じて処理を停止する方法
IF文中に処理を停止するには以下の1文をコードに記述するだけです。
とはいえ、これだけではどうゆう使い方なのかよくわからないと思いますので、実際の使用例をみてみましょう。
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の使い方をご紹介しました。
意味のない処理はなるべく行わないで済むように、要所で組み込んでみましょう。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント