<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>終了  |  独学エクセル塾</title>
	<atom:link href="https://dokugakuexcel.com/tag/%E7%B5%82%E4%BA%86/feed/" rel="self" type="application/rss+xml" />
	<link>https://dokugakuexcel.com</link>
	<description>初心者から中級者までシステム・関数・VBAを伝授します</description>
	<lastBuildDate>Mon, 17 Oct 2022 12:39:23 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://dokugakuexcel.com/wp-content/uploads/2021/06/cropped-cropped-image-66-1-32x32.jpg</url>
	<title>終了  |  独学エクセル塾</title>
	<link>https://dokugakuexcel.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">194648711</site>	<item>
		<title>【マクロVBA】実行中のプログラムを途中で終了する！設定の条件・エラー発生でExit Subで止める</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%ae%9f%e8%a1%8c%e4%b8%ad%e3%81%ae%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%92%e9%80%94%e4%b8%ad%e3%81%a7%e7%b5%82%e4%ba%86%e3%81%99/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e3%2580%2591%25e5%25ae%259f%25e8%25a1%258c%25e4%25b8%25ad%25e3%2581%25ae%25e3%2583%2597%25e3%2583%25ad%25e3%2582%25b0%25e3%2583%25a9%25e3%2583%25a0%25e3%2582%2592%25e9%2580%2594%25e4%25b8%25ad%25e3%2581%25a7%25e7%25b5%2582%25e4%25ba%2586%25e3%2581%2599</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%ae%9f%e8%a1%8c%e4%b8%ad%e3%81%ae%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%92%e9%80%94%e4%b8%ad%e3%81%a7%e7%b5%82%e4%ba%86%e3%81%99/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Wed, 21 Sep 2022 13:44:18 +0000</pubDate>
				<category><![CDATA[ソースコード]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[Exit sub]]></category>
		<category><![CDATA[プログラム停止]]></category>
		<category><![CDATA[停止]]></category>
		<category><![CDATA[終了]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=3507</guid>

					<description><![CDATA[今回は、設定した条件になったときにプログラムを終わらせる・実行中のプロシージャを停止させる方法について紹介します。 IFなどの条件分岐をしている場合や、On Errorでエラーになった場合の処理をしている場合などには今回 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>今回は、<strong><span class="marker-under">設定した条件になったときにプログラムを終わらせる・実行中のプロシージャを停止させる方法</span></strong>について紹介します。</p>



<p>IFなどの条件分岐をしている場合や、On Errorでエラーになった場合の処理をしている場合などには<br>今回紹介する方法と相性がよく、指定した条件になったらプログラムを終了なんてこともできます。</p>



<p>見本の事例も紹介していますので是非参考にしてみてください。</p>



<p>それではみていきましょう。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">&#x2b1b;︎忙しい人向けのコピぺ用プログラム</a><ol><li><a href="#toc2" tabindex="0">・条件に当てはまる場合はプログラムを終了させる</a></li><li><a href="#toc3" tabindex="0">・エラーが発生した場合はプログラムを終了させる</a></li></ol></li><li><a href="#toc4" tabindex="0">&#x2b1b;︎構文の説明</a></li><li><a href="#toc5" tabindex="0">&#x2b1b;︎Exit Subの仕組みと特徴</a></li><li><a href="#toc6" tabindex="0">&#x2b1b;︎事例①:If Thenと合わせて、条件の元プログラムを終了する</a></li><li><a href="#toc7" tabindex="0">&#x2b1b;︎事例②:エラー発生時にプログラムを終了させる</a></li><li><a href="#toc8" tabindex="0">&#x2b1b;︎公式</a></li><li><a href="#toc9" tabindex="0">&#x2b1b;︎まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">&#x2b1b;︎忙しい人向けのコピぺ用プログラム</span></h2>



<h3 class="wp-block-heading"><span id="toc2">・条件に当てはまる場合はプログラムを終了させる</span></h3>



<pre class="wp-block-verse">Sub 条件の場合()

If プログラムをとめる条件 Then
MsgBox "プログラムを終了します"
<span class="bold-blue">Exit Sub</span>
End If

'ここに処理プログラム
End Sub</pre>



<h3 class="wp-block-heading"><span id="toc3">・エラーが発生した場合はプログラムを終了させる</span></h3>



<pre class="wp-block-verse">Sub エラーの場合()

On Error GoTo <span class="bold-red">Error1</span>
'ここに処理プログラム
<span class="bold-blue">Exit Sub</span>

<span class="bold-red">Error1</span>:
MsgBox "プログラムを終了します"

End Sub</pre>



<h2 class="wp-block-heading"><span id="toc4">&#x2b1b;︎構文の説明</span></h2>



<pre class="wp-block-verse"><span class="fz-20px"><strong>Exit Sub</strong></span></pre>



<p>これだけです、<br><strong><span class="marker-under">「Exit Sub」を実行した時点でプログラムは終了</span></strong>します。</p>



<h2 class="wp-block-heading"><span id="toc5">&#x2b1b;︎Exit Subの仕組みと特徴</span></h2>



<p>構文を見てもらったらわかる通り「Exit Sub」のみで、実行中のプログラムを終えることができます。<br>通常、プログラムを終了させるのは「<strong><span class="marker-under-blue">End Sub</span></strong>」ですよね。</p>



<p>しかし「End Sub」は<strong><span class="marker-under-blue">プログラムの最終行になければいけません。</span></strong><br>それでも条件によっては途中で終わらせたい場合がありますよね。</p>



<p>そこで使用するのが「<strong><span class="marker-under-red">Exit Sub</span></strong>」になります。<br>「<strong><span class="marker-under-red">Exit Sub」は最終行でなくても機能し、プログラムの実行を終わらせるとこができます</span></strong>。</p>



<p>機能自体は「End Sub」と同様なので、条件分岐やGotoと合わせて使用することが多いです。<br>では事例をみていきましょう。</p>



<h2 class="wp-block-heading"><span id="toc6">&#x2b1b;︎事例①:If Thenと合わせて、条件の元プログラムを終了する</span></h2>



<p>では一つ目の事例です。<br>下図のシートをご覧ください。</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="845" height="178" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-74.png" alt="" class="wp-image-3508" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-74.png 845w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-74-300x63.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-74-768x162.png 768w" sizes="(max-width: 845px) 100vw, 845px" /></figure>



<p>B3に入力してある「数値①」にD3に入力してある「数値②」で割った値を<br>「F3」に出力しています。</p>



<p>簡単なプログラムですが、このようになっています。</p>



<pre class="wp-block-verse">Sub 数値①から数値②を除算()<br>Cells(3, 6) = Cells(3, 2) / Cells(3, 4)<br>End Sub</pre>



<p>では実行してみましょう。<br>結果はこのようになりました。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="847" height="188" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-75.png" alt="" class="wp-image-3509" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-75.png 847w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-75-300x67.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-75-768x170.png 768w" sizes="(max-width: 847px) 100vw, 847px" /></figure>



<p>計算出来ていますね。<br>では、数値②を空白にして実行してみましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="855" height="178" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-76.png" alt="" class="wp-image-3510" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-76.png 855w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-76-300x62.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-76-768x160.png 768w" sizes="(max-width: 855px) 100vw, 855px" /></figure>



<p>するとこのような画面が出てきます。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-77.png" alt="" class="wp-image-3511" width="481" height="233" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-77.png 652w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-77-300x145.png 300w" sizes="(max-width: 481px) 100vw, 481px" /></figure>



<p><strong><span class="marker-under">エラーが出ました</span></strong>。このエラーは文字通り「0で割ったことが原因で出るエラーです。<br>このエラー画面はVBAに慣れている人は見慣れているのでうまく対処できますが、<br>VBAを触ったことがない人がこの画面を見ると戸惑ってしまいます。</p>



<p>「デバッグ」を押すと出てくるプログラムに訳がわからなくわからなったりしたら<br>対応出来なくなるリスクを踏まえると、みんなに優しいプログラムとは言えませんね。</p>



<p>そこで<strong><span class="marker-under-red">「数値①」と「数値②」が空白だった場合</span></strong>、「数値①、②が空白です」というメッセージとともにプ<strong><span class="marker-under-blue">ログラムを終了する方法</span></strong>を見ていきましょう。</p>



<p>使用するのは「If Then」になります。<br>使用方法については下記記事でまとめてますのでご覧ください。</p>



<p>では見本のプログラムをみていきましょう。</p>



<pre class="wp-block-verse">Sub 数値①から数値②を除算()

If <strong><span class="marker-under-red">Cells(3, 2) = ""</span></strong> Or<strong><span class="marker-under-red"> Cells(3, 4) = "" </span></strong>Then
MsgBox "数値①、②が空白です"
<span class="bold-blue">Exit Sub</span>
End If

Cells(3, 6) = Cells(3, 2) / Cells(3, 4)
End Sub</pre>



<p>では「B3」と「D3」に数値が入ってない場合<br>で実行してみたいと思います。<br>するとこのようになりました。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="641" height="375" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-78.png" alt="" class="wp-image-3512" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-78.png 641w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-78-300x176.png 300w" sizes="(max-width: 641px) 100vw, 641px" /></figure>



<p>「数値①、②が空白です」というメッセージと共に<br><strong><span class="marker-under">計算をせずにプログラムが終了</span></strong>しています。</p>



<p>つまりIfの条件に当てはまり、メッセージボックスを表示させた後、<br><strong><span class="marker-under-blue">「Exit Sub」でプログラムを終了</span></strong>させたことになります。</p>



<p>これで、ある条件に該当した場合はプログラムを止めることができますね。</p>



<h2 class="wp-block-heading"><span id="toc7">&#x2b1b;︎事例②:エラー発生時にプログラムを終了させる</span></h2>



<p>次に<strong><span class="marker-under">エラーが発生した際にプログラムを終了させる</span></strong>事例をみていきましょう。<br>エラーを検出する方法は「<span class="bold-red">On Error</span>」になります。</p>



<p>「On Error」を詳しい使用方法は下記記事をご覧ください。</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%81%ae%e3%82%a8%e3%83%a9%e3%83%bc%e5%af%be%e7%ad%96%e3%80%91%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%ab%e8%b2%a0%e3%81%91%e3%81%aa%e3%81%84%e3%83%97%e3%83%ad/">【マクロVBAのエラー対策】エラーが発生したら指定行まで移動！エラーに負けないプログラムの作り方 ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>こちらは先に見本のプログラムを見てみましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><span class="bold-red">On Error </span>Goto <span class="bold-green">任意ラベル</span><br>　　・<br>　　・<br>　　・<br>通常プログラム<br>　　・<br>　　・<br>　　・<br><span class="bold-blue">Exit Sub</span></p><p><span class="bold-green">任意ラベル</span>：</p><p>エラー時の処理</p><p>End Sub</p></blockquote>



<p>このようになります。<br>「On Error」の後にある「Goto 任意ラベル」によって<br><strong><span class="marker-under">エラーが起きた際は「任意ラベル」へ飛び、「End Sub」で終了</span></strong>します。</p>



<p>対して<strong><span class="marker-under">エラーが起きない通常の場合は「Exit Sub」で終わる</span></strong>ようになります。</p>



<p>では先程の見本をご覧ください。<br>今回も空白の場合は「数値①、②が空白です」というメッセージを出したいと思います。</p>



<p>プログラムはこのようになります。</p>



<pre class="wp-block-verse">Sub 数値①から数値②を除算2()

<span class="bold-red">On Error</span> GoTo <span class="bold-green">Error1</span>
Cells(3, 6) = Cells(3, 2) / Cells(3, 4)
<span class="bold-blue">Exit Sub</span>

<span class="bold-green">Error1</span>:
MsgBox "数値①、②が空白です"
End Sub</pre>



<p>それでは実行してみましょう。</p>



<p>通常の場合はこちら、、、</p>



<figure class="wp-block-image size-full"><img decoding="async" width="836" height="182" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-79.png" alt="" class="wp-image-3513" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-79.png 836w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-79-300x65.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-79-768x167.png 768w" sizes="(max-width: 836px) 100vw, 836px" /></figure>



<p>狙い通り計算出来ています。</p>



<p>対して数値が空白の場合、、、</p>



<figure class="wp-block-image size-full"><img decoding="async" width="641" height="376" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-80.png" alt="" class="wp-image-3514" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-80.png 641w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-80-300x176.png 300w" sizes="(max-width: 641px) 100vw, 641px" /></figure>



<p>「数値①、②が空白です」が表示され、プログラムを終えてくれました。<br>これでエラーが起きた際のプログラム停止が可能になります。</p>



<h2 class="wp-block-heading"><span id="toc8">&#x2b1b;︎公式</span></h2>



<p>わかりやすいように説明したため公式と使用する語句が異なりますが<br>マイクロソフト公式の説明については下記のリンクを参照してください。☟</p>



<p><a href="https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/exit-statement">Exit ステートメント (VBA) | Microsoft Learn</a></p>



<h2 class="wp-block-heading"><span id="toc9">&#x2b1b;︎まとめ</span></h2>



<p>いかがだったでしょうか。<br>「End Sub」と違い「Exit Sub」はどこにでも配置でき、<br>Ifなどといった条件分岐や、「On Error」といったエラー時の<br>処置と相性がいいです。</p>



<p>複数人が触るシステムなどには入力し忘れをメッセージで出したりなど<br>活用法は様々です。</p>



<p>是非活用してみてください。</p>



<p>それでは次回の記事でお会いしましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%ae%9f%e8%a1%8c%e4%b8%ad%e3%81%ae%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%92%e9%80%94%e4%b8%ad%e3%81%a7%e7%b5%82%e4%ba%86%e3%81%99/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3507</post-id>	</item>
	</channel>
</rss>
