<?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/%E5%81%9C%E6%AD%A2/feed/" rel="self" type="application/rss+xml" />
	<link>https://dokugakuexcel.com</link>
	<description>初心者から中級者までシステム・関数・VBAを伝授します</description>
	<lastBuildDate>Fri, 30 Dec 2022 13:57:56 +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】実行中のコードを強制停止・終了する方法！キーボードのみで操作可能</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%82%b3%e3%83%bc%e3%83%89%e3%82%92%e5%bc%b7%e5%88%b6%e5%81%9c%e6%ad%a2%e3%83%bb%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%2582%25b3%25e3%2583%25bc%25e3%2583%2589%25e3%2582%2592%25e5%25bc%25b7%25e5%2588%25b6%25e5%2581%259c%25e6%25ad%25a2%25e3%2583%25bb%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%82%b3%e3%83%bc%e3%83%89%e3%82%92%e5%bc%b7%e5%88%b6%e5%81%9c%e6%ad%a2%e3%83%bb%e7%b5%82%e4%ba%86%e3%81%99/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Fri, 30 Dec 2022 13:55:43 +0000</pubDate>
				<category><![CDATA[便利技]]></category>
		<category><![CDATA[エラー対策]]></category>
		<category><![CDATA[中断]]></category>
		<category><![CDATA[強制終了]]></category>
		<category><![CDATA[Esc]]></category>
		<category><![CDATA[エスケープ]]></category>
		<category><![CDATA[停止]]></category>
		<category><![CDATA[コードの実行]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=3970</guid>

					<description><![CDATA[マクロVBAを使用する上で誤って別のプロシージャを実行したり処理時間が長くてコードの実行を途中で止めたい場面があると思います。 その際に通常のメニューにある実行の停止はグレーアウトして選択できないため、プログラム実行が終 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>マクロVBAを使用する上で誤って別のプロシージャを実行したり<br>処理時間が長くて<strong><span class="marker-under">コードの実行を途中で止めたい場面</span></strong>があると思います。</p>



<p>その際に通常のメニューにある実行の停止はグレーアウトして<br>選択できないため、プログラム実行が終わるまで待つ方もいるのではないでしょうか。</p>



<p>そこで今回は<strong><span class="marker-under">キーボード操作のみでできる実行中のコードを<br>停止させる方法</span></strong>について紹介します。</p>



<p>作業自体もとても簡単なので是非参考にしてみてください。<br>それでは見ていきましょう。</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></li><li><a href="#toc2" tabindex="0">&#x2b1b;︎実行コードを強制停止・終了する</a></li><li><a href="#toc3" tabindex="0">&#x2b1b;︎停止後の復帰方法</a><ol><li><a href="#toc4" tabindex="0">・完全に実行を中断したい場合</a></li><li><a href="#toc5" tabindex="0">・どこまでのコードを実行したか確認して終了する</a></li><li><a href="#toc6" tabindex="0">・コード実行を再開したい場合</a></li></ol></li><li><a href="#toc7" tabindex="0">■Escでも強制終了できない場合</a></li><li><a href="#toc8" tabindex="0">&#x2b1b;︎まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">&#x2b1b;︎こんなことができるようになる！</span></h2>



<p>・実行中のプロシージャを強制的に途中停止できる。<br>・処理中のコードを途中停止できる</p>



<h2 class="wp-block-heading"><span id="toc2">&#x2b1b;︎実行コードを強制停止・終了する</span></h2>



<p>では本題に入っていきましょう。<br>見本で下記のような簡単なコードを用意しました。</p>



<pre class="wp-block-verse">Sub 繰り返し処理()
Dim Time1 As Double, Time2 As Double, Result As Double
Dim Cycle As Long

Time1 = Timer
For Cycle = 1 To 1000 Step 1
 Cells(1, 1) = "=SUM(D:D)"
 Cells(1, 1) = "=SUM(D:D)" 
 Cells(1, 1) = "=SUM(D:D)"
Next Cycle

Time2 = Timer
Result = Time2 - Time1
MsgBox Result &amp; "秒で処理しました"
End Sub
</pre>



<p>内容としてはセル番地A1からA3にＤ列の合計の算出を<br>SUM関数を用いて<strong><span class="marker-under-red">10000回繰り返すコード</span></strong>になります。</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="519" height="153" src="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-88.png" alt="" class="wp-image-3971" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-88.png 519w, https://dokugakuexcel.com/wp-content/uploads/2022/12/image-88-300x88.png 300w" sizes="(max-width: 519px) 100vw, 519px" /></figure>



<p>見本なので無意味な繰り返しをしていますが<br>こちらを<strong><span class="marker-under">実行すると「138秒」かかってしまいます</span></strong>。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-89.png" alt="" class="wp-image-3972" width="202" height="153"/></figure>



<p>一度<strong><span class="marker-under-blue">実行してしまうと止まるまでに約２分待たないといけない</span></strong>ので<br>誤動作時にはとてもめんどくさいです。<br>こちらを<strong><span class="marker-under">実行中に途中で止めてみましょう</span></strong>。</p>



<p>使用するキーは<strong><span class="marker-under">「エスケープキー」</span></strong>になります。<br>大半のキーボードでは左上に配置されており<strong><span class="marker-under">「Esc」</span></strong>と記されていると思います。</p>



<p>では実際に「Escキー」を活用してみましょう。<br>活用方法は簡単で、<strong><span class="marker-under-red">実行中に押すのみです</span></strong>。</p>



<p>では先程のコードを実行して「Escキー」を押してみたいと思います。<br>結果はこのようになりました。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-90.png" alt="" class="wp-image-3973" width="454" height="217" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-90.png 611w, https://dokugakuexcel.com/wp-content/uploads/2022/12/image-90-300x143.png 300w" sizes="(max-width: 454px) 100vw, 454px" /></figure>



<p>「コードの実行が中断されました。」というメッセージが表示されました。<br>よく、エラー時に表示されるメッセージです。</p>



<p>では確認も含めてデバッグを押してみましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="528" height="211" src="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-91.png" alt="" class="wp-image-3974" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-91.png 528w, https://dokugakuexcel.com/wp-content/uploads/2022/12/image-91-300x120.png 300w" sizes="(max-width: 528px) 100vw, 528px" /></figure>



<p>変数Nは本来であれば<strong><span class="marker-under-red">10000回繰り返しますが<br>543回で止まっています</span></strong>。</p>



<p>つまり<strong><span class="marker-under">強制的に停止が出来たことになります。</span></strong></p>



<p>とても簡単ですね。</p>



<h2 class="wp-block-heading"><span id="toc3">&#x2b1b;︎停止後の復帰方法</span></h2>



<p>ここからは<strong><span class="marker-under">停止の復帰方法</span></strong>です。<br>デバッグ作業をされた事がある方は復習になりますが<br>一連の復帰方法を見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc4">・完全に実行を中断したい場合</span></h3>



<p>現在の状態はあくまで強制停止状態にあります。<br>なので、そこから再度実行もできますし、デバッグもできます。</p>



<p>今回は<strong><span class="marker-under-red">完全に実行を中断</span></strong>するわけですから<br>先程のメッセージから<strong><span class="marker-under-red">「終了」</span></strong>を押します。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="611" height="291" src="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-92.png" alt="" class="wp-image-3975" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-92.png 611w, https://dokugakuexcel.com/wp-content/uploads/2022/12/image-92-300x143.png 300w" sizes="(max-width: 611px) 100vw, 611px" /></figure>



<p>これで強制終了が終わりました。</p>



<p>注意点として、<strong><span class="marker-under">どこまでのコードが実行されたかは<br>確認が出来ないのでシートを確認して現状を把握する必要があります。</span></strong></p>



<p>どこまでのコードが実行されたか確認する方法は次の項目で説明します。</p>



<h3 class="wp-block-heading"><span id="toc5">・どこまでのコードを実行したか確認して終了する</span></h3>



<p>今度はどこまでのコードが実行されたか確認して終了する手順を紹介します。</p>



<p>「Escキー」を押した後にでるメニューか<strong><span class="marker-under-red">「デバッグ」</span></strong>を選択します。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="611" height="291" src="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-93.png" alt="" class="wp-image-3976" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-93.png 611w, https://dokugakuexcel.com/wp-content/uploads/2022/12/image-93-300x143.png 300w" sizes="(max-width: 611px) 100vw, 611px" /></figure>



<p>すると<strong><span class="marker-under">黄色く塗りつぶされた行があるのですか<br>そこまでコードが実行されたことを示します。</span></strong></p>



<figure class="wp-block-image size-full"><img decoding="async" width="604" height="211" src="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-94.png" alt="" class="wp-image-3977" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-94.png 604w, https://dokugakuexcel.com/wp-content/uploads/2022/12/image-94-300x105.png 300w" sizes="(max-width: 604px) 100vw, 604px" /></figure>



<p>見本のように繰り返し動作の場合は変数を確認すれば何回まで繰り返し処理が行われたか確認することが出来ます。</p>



<p>その後、「<strong><span class="marker-under">リセット」ボタンにて停止中のプロシージャを<br>完全に中断</span></strong>することができます。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-95.png" alt="" class="wp-image-3978" width="631" height="154" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-95.png 631w, https://dokugakuexcel.com/wp-content/uploads/2022/12/image-95-300x73.png 300w" sizes="(max-width: 631px) 100vw, 631px" /></figure>



<p></p>



<h3 class="wp-block-heading"><span id="toc6">・コード実行を再開したい場合</span></h3>



<p>最後に<strong><span class="marker-under">コードの実行を再開したい場合</span></strong>を見ていきましょう。</p>



<p>まずは、アラーム時の復帰から見ていきます。</p>



<p></p>



<p>操作は簡単でメニューにある<strong><span class="marker-under-red">「継続」</span></strong>を押せば、動作を再開してくれます。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-96.png" alt="" class="wp-image-3979" width="508" height="241" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-96.png 615w, https://dokugakuexcel.com/wp-content/uploads/2022/12/image-96-300x142.png 300w" sizes="(max-width: 508px) 100vw, 508px" /></figure>



<p></p>



<p>次に<strong><span class="marker-under">「デバッグ」で停止させた後に再開の方法</span></strong>を見ていきましょう。</p>



<p>こちらは<strong><span class="marker-under-red">「F5」</span></strong>キーまたは<strong><span class="marker-under-red">「ユーザーフォームの実行」ボタン</span></strong>でコード実行の再開を行うことができます。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-97.png" alt="" class="wp-image-3980" width="433" height="145" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-97.png 609w, https://dokugakuexcel.com/wp-content/uploads/2022/12/image-97-300x100.png 300w" sizes="(max-width: 433px) 100vw, 433px" /></figure>



<p>もちろん再開後も再度、「Esc」キーで停止させることも可能です。</p>



<h2 class="wp-block-heading"><span id="toc7">■Escでも強制終了できない場合</span></h2>



<p>Escキーでも止まらない場合は<strong><span class="marker-under">タスクマネージャーで停止させる</span></strong>ことも可能です。</p>



<p>しかし、先ほどまでの停止方法とは異なり、Excel自体の強制終了になるので</p>



<p><strong><span class="marker-under-red">上書き保存をしていないと、前回の保存以降の処理が消えてしまうので注意が必要</span></strong>です。</p>



<p></p>



<p>では方法を見ていきましょう。</p>



<p></p>



<p>まずキーボードの<strong><span class="marker-under-blue">「Ctrl」+「Alt」+「Delete」</span></strong>を押します。</p>



<p>するとメニューが表示されるので「<strong><span class="marker-under-blue">タスクマネージャー</span></strong>」を選択します。</p>



<p></p>



<p>「<strong><span class="marker-under-blue">プロセス」タブ</span></strong>に<strong><span class="marker-under-blue">「Microsoft　Excel」</span></strong>の項目があると思うので<strong><span class="marker-under-blue">選択</span></strong>します。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-98.png" alt="" class="wp-image-3984" width="552" height="286" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/12/image-98.png 829w, https://dokugakuexcel.com/wp-content/uploads/2022/12/image-98-300x156.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/12/image-98-768x398.png 768w" sizes="(max-width: 552px) 100vw, 552px" /></figure>



<p>最後に<strong><span class="marker-under-blue">「タスクの終了」</span></strong>があるのでこちらを選択します。</p>



<p>するとExcelが強制終了します。</p>



<p></p>



<p>強制終了後のファイルの復元方法については下記記事をご参照ください☟</p>



<p><a href="https://dokugakuexcel.com/%e4%bf%9d%e5%ad%98%e3%81%a7%e3%81%8d%e3%81%9a%e3%81%ab%e7%b5%82%e4%ba%86%e3%83%bb%e4%b8%8a%e6%9b%b8%e3%81%8d%e3%81%97%e3%81%9f%e3%82%a8%e3%82%af%e3%82%bb%e3%83%ab%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab/">保存できずに終了・上書きしたエクセルファイルを復元する方法一覧！消えたファイルを元に戻す ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p></p>



<p>いずれも<strong><span class="marker-under-red">コードの実行前には上書きを推奨</span></strong>します。</p>



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



<p>いかがだったでしょうか。<br>処理に時間がかかるプロシージャを途中で止めたくなった<br>場合など様々な場面で使用できそうですね。</p>



<p>また「Escキー」のみで操作可能なので<br>とても簡単な方法になっています。</p>



<p>是非参考にしてみてください。<br>それでは次回の記事でお会いしましょう。</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%82%b3%e3%83%bc%e3%83%89%e3%82%92%e5%bc%b7%e5%88%b6%e5%81%9c%e6%ad%a2%e3%83%bb%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">3970</post-id>	</item>
		<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-4" checked><label class="toc-title" for="toc-checkbox-4">目次</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 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>
