<?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/%E9%A3%9B%E3%81%B0%E3%81%99/feed/" rel="self" type="application/rss+xml" />
	<link>https://dokugakuexcel.com</link>
	<description>初心者から中級者までシステム・関数・VBAを伝授します</description>
	<lastBuildDate>Mon, 17 Oct 2022 12:50:27 +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】GoToでプログラムを指定した場所・ラベルまで飛ばす方法について!エラーの原因も解説</title>
		<link>https://dokugakuexcel.com/%e3%80%90vba%e7%9f%a5%e8%ad%98-11%e3%80%91goto%e3%81%a7%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%92%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e5%a0%b4%e6%89%80%e3%81%be%e3%81%a7%e9%a3%9b%e3%81%b0/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590vba%25e7%259f%25a5%25e8%25ad%2598-11%25e3%2580%2591goto%25e3%2581%25a7%25e3%2583%2597%25e3%2583%25ad%25e3%2582%25b0%25e3%2583%25a9%25e3%2583%25a0%25e3%2582%2592%25e6%258c%2587%25e5%25ae%259a%25e3%2581%2597%25e3%2581%259f%25e5%25a0%25b4%25e6%2589%2580%25e3%2581%25be%25e3%2581%25a7%25e9%25a3%259b%25e3%2581%25b0</link>
					<comments>https://dokugakuexcel.com/%e3%80%90vba%e7%9f%a5%e8%ad%98-11%e3%80%91goto%e3%81%a7%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%92%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e5%a0%b4%e6%89%80%e3%81%be%e3%81%a7%e9%a3%9b%e3%81%b0/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Tue, 06 Jul 2021 12:24:14 +0000</pubDate>
				<category><![CDATA[ソースコード]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[GoTo]]></category>
		<category><![CDATA[飛ばす]]></category>
		<category><![CDATA[指定した位置]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=504</guid>

					<description><![CDATA[設定した条件や場面によってプログラムを飛ばして 別の処理プログラムを読み取りたいと思ったことはないでしょうか。 ループを抜け出す際にも使用できます。 今回は、そんな時に使えるGoToについて説明します。 IFなどに合わせ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>設定した条件や場面によってプログラムを飛ばして</p>



<p>別の処理プログラムを読み取りたいと思ったことはないでしょうか。</p>



<p>ループを抜け出す際にも使用できます。</p>



<p>今回は、そんな時に使える<strong><span class="marker-under">GoToについて説明</span></strong>します。</p>



<p>IFなどに合わせるととても便利です。</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">■GoTo の構造</a></li><li><a href="#toc2" tabindex="0">■実践</a><ol><li><a href="#toc3" tabindex="0">・通常時にプログラムを指定ラベル・位置まで飛ばす</a></li><li><a href="#toc4" tabindex="0">・ループ中にプログラムを指定ラベル・位置まで飛ばす</a></li></ol></li><li><a href="#toc5" tabindex="0">■よくあるエラーと対処法</a><ol><li><a href="#toc6" tabindex="0">・コンパイルエラー：行ラベルが定義されていません</a></li><li><a href="#toc7" tabindex="0">・コンパイルエラー：　修正候補：行番号　または　行ラベル</a><ol><li><a href="#toc8" tabindex="0">①変数名やプログラムで使用する用語</a></li><li><a href="#toc9" tabindex="0">②使用できない記号が含まれている</a></li></ol></li></ol></li><li><a href="#toc10" tabindex="0">■公式の説明</a></li><li><a href="#toc11" tabindex="0">■まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">■GoTo の構造</span></h2>



<p>まずは構造から見ていきましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><span class="fz-22px"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-red-color">GoTo <span class="bold-red">○○</span></mark></span></strong></p><p><strong><span class="fz-22px">&#8216;処理①</span></strong></p><p><strong><span class="fz-22px"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color"><span class="bold-red">○○</span>:</mark></span></strong></p><p><strong><span class="fz-22px">&#8216;処理②</span></strong></p></blockquote>



<p><span class="fz-24px"><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-red-color">GoTo　<span class="bold-red">○○</span>の説明</mark></strong></span></p>



<p><strong><span class="marker-under">GoToの後に飛ばしたい位置のラベル</span><span class="marker-under">・</span><span class="marker-under">名前を付けます</span></strong>。<br>「A」でも「1」でも「あ」でも構いません。</p>



<p><span class="fz-24px"><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-indigo-color"><span class="bold-red">○○</span>:の説明</mark></strong></span></p>



<p><strong><span class="marker-under">プログラムを飛ばしたい先の前の行に入れます</span></strong>。<br>この時の○○はGoToでつけたラベル・名前と合わせます。<br>なのでGoTo <span class="bold-red">TTT</span> ですと　飛ばす先の前の行は「<span class="bold-red">TTT</span>:」となります。</p>



<p>上記の見本を見てみますと処理①飛ばして<br>処理②に飛ぶようになりますね。</p>



<p></p>



<p>こちらはIFのような条件分岐とは異なり、強制的に分岐が実行できます。</p>



<p></p>



<h2 class="wp-block-heading"><span id="toc2">■実践</span></h2>



<p></p>



<p>それでは実践です。2つのパターンを紹介していますので使い分けてください。</p>



<h3 class="wp-block-heading"><span id="toc3">・通常時にプログラムを指定ラベル・位置まで飛ばす</span></h3>



<p>下図のシートを用意しました。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="495" height="98" src="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-53.png" alt="" class="wp-image-505" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-53.png 495w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-53-300x59.png 300w" sizes="(max-width: 495px) 100vw, 495px" /></figure>



<p>B3にAかBを打つと・・・</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="484" height="204" src="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-54.png" alt="" class="wp-image-506" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-54.png 484w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-54-300x126.png 300w" sizes="(max-width: 484px) 100vw, 484px" /></figure>



<p>「Aの処理」「Bの処理」が出力される仕組みを作ってみます。</p>



<p>仮に下図のようなプログラムを組んだとしましょう。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="258" height="248" src="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-55.png" alt="" class="wp-image-507"/></figure>



<p>B3がAですとIFは条件に合わないためEnd Ifに飛ぶので「Aの処理」と出力されるようにしています。<br>しかし、B3がA以外だと「Bの処理」と1回出力されるものの<br>その後の「Cells(3, 4) = &#8220;Aの処理&#8221;」を読み込んでしまい、結果的に「Aの処理」となってしまいます。</p>



<p>つまり、<span class="marker-under"><strong>B</strong></span><strong><span class="marker-under">の処理の時は「Cells(3, 4) = &#8220;Aの処理&#8221;」を飛ばさなくてはなりません</span>。</strong></p>



<p></p>



<figure class="wp-block-image size-large"><img decoding="async" width="542" height="248" src="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-56.png" alt="" class="wp-image-508" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-56.png 542w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-56-300x137.png 300w" sizes="(max-width: 542px) 100vw, 542px" /></figure>



<p></p>



<p>ここでGoToを使用してみましょう！<br>Elseを使えば解決するのですが、見本なので使ってみます。</p>



<p>つまり「Cells(3, 4) = &#8220;Bの処理&#8221;」<br>を読み込んだ後にEnd Subまで飛ばしましょう。</p>



<p>つまり下図のようになります。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="274" height="278" src="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-57.png" alt="" class="wp-image-509" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-57.png 274w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-57-100x100.png 100w" sizes="(max-width: 274px) 100vw, 274px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub Gotoの使い方()</p><p>If Cells(3, 2) &lt;&gt; &#8220;A&#8221; Then</p><p>Cells(3, 4) = &#8220;Bの処理&#8221;</p><p><span class="marker-under-red">GoTo<span class="bold-red"> 1</span></span></p><p>End If</p><p>Cells(3, 4) = &#8220;Aの処理&#8221;</p><p><span class="marker-under-red"><span class="bold-red">1</span>:</span></p><p>End Sub</p></blockquote>



<p>これにより「Bの処理」を打ち込んだ後にEnd Subに飛ぶので<br>「Aの処理」で上書きすることはないです。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="484" height="204" src="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-58.png" alt="" class="wp-image-510" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-58.png 484w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-58-300x126.png 300w" sizes="(max-width: 484px) 100vw, 484px" /></figure>



<p>実行してもうまく機能してくれています。</p>



<p></p>



<h3 class="wp-block-heading"><span id="toc4">・ループ中にプログラムを指定ラベル・位置まで飛ばす</span></h3>



<p>さらに<strong><span class="marker-under">GoToはループ処理から抜け出すこともできます。</span></strong></p>



<p>下記のようなプログラムがあったとします。</p>



<p></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ループから抜け出す()</p><p>Dim A As Long</p><p>For A = 1 To 100 Step 1</p><p>If Cells(A, 1) = &#8220;&#8221; Then<br>GoTo <span class="bold-red">Loop終了</span><br>End If</p><p>Cells(A, 2) = Cells(A, 1) * 2</p><p>Next A</p><p><span class="bold-red">Loop終了</span>:<br>End Sub</p></blockquote>



<p></p>



<p>A列に「2」をかけた数値をB列に算出するプログラムです。</p>



<p>見本では１００行まで繰り返し実行するようになってますが、空白になったらプログラムを</p>



<p>終えるようにプログラミングしています。</p>



<p></p>



<p>仕組みとしてIFで条件分岐をしており、対象が空白なら</p>



<p><strong><span class="marker-under">GoToで「<span class="bold-red">Loop終了</span>」に飛ぶ</span></strong>ようになってます。</p>



<p>「Loop終了」はEnd Subにつながっており、強制終了するようになってます。</p>



<p></p>



<h2 class="wp-block-heading"><span id="toc5">■よくあるエラーと対処法</span></h2>



<p>ではGOTOを使用して発生するエラーとそれに対する対処法を説明します。</p>



<p></p>



<h3 class="wp-block-heading"><span id="toc6">・コンパイルエラー：行ラベルが定義されていません</span></h3>



<p>こちらは<strong><span class="marker-under">GOTOに対しての移動先が存在しない場合に発生するエラー</span></strong>です。</p>



<p>たとえは「GoTo ABC」というプログラムに対し、「ABC:」という移動先が必要です。</p>



<p></p>



<p>このようなエラーが出た方は移動先が入力されているか確認してみてください。</p>



<p></p>



<h3 class="wp-block-heading"><span id="toc7">・コンパイルエラー：　修正候補：行番号　または　行ラベル</span></h3>



<p></p>



<p>このエラーが表示された方はGoToを入力した際に表示されたかと思います。</p>



<p>GoToには多少の規制がありますので下記にまとめました。</p>



<p></p>



<h4 class="wp-block-heading"><span id="toc8">①変数名やプログラムで使用する用語</span></h4>



<p>こちらも知らなければエラーの原因となります。</p>



<p>例えば変数で使用される「Variant」や「String」などの名前で作成している場合や</p>



<p>条件分岐で使用する「If」や繰り返しで使用する「For」などで名前を付けている場合は</p>



<p>エラーになってしまいます。</p>



<p></p>



<p>上記のような用語を使用したい場合は何でもいいので<strong><span class="marker-under-blue">文字・数値を加えてください</span></strong>。</p>



<p>例えば「GoTo Variant」であれば「GoTo Varianpt123」のように</p>



<p>文字・数値を付け加えると使用できます。</p>



<p></p>



<h4 class="wp-block-heading"><span id="toc9">②使用できない記号が含まれている</span></h4>



<p><strong><span class="marker-under-blue">名前に使用できない記号も存在します</span></strong>。</p>



<p>「スペース」のほかに「＠」「＆」「＃」などが含まれているとエラーになってしまいます。</p>



<p>私もすべて把握はしていませんが、エラーが発生した場合に</p>



<p>記号を含んでいる場合は取り除いてみてください。</p>



<p></p>



<p></p>



<h2 class="wp-block-heading"><span id="toc10">■公式の説明</span></h2>



<p>わかりやすいように説明したため公式と使用する語句が異なりますが</p>



<p>マイクロソフト公式の説明については下記のリンクを参照してください。☟</p>



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



<p></p>



<h2 class="wp-block-heading"><span id="toc11">■まとめ</span></h2>



<p></p>



<p>いかがだったでしょうか。</p>



<p>GoTOを使いこなせば処理方法を分岐できるようになり、<br>様々なパターンに対応できるようになります。</p>



<p></p>



<p>さらにはエラーが生じると指定位置まで飛ぶような方法もありますので</p>



<p>別の記事で説明したいと思います。</p>



<p></p>



<p>では次回の記事でお会いしましょう。記事はこちらから☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90vba%e7%9f%a5%e8%ad%98-12%e3%80%91%e5%88%a5%e3%81%ae%e3%82%b7%e3%83%bc%e3%83%88%e3%82%92%e3%82%a2%e3%82%af%e3%83%86%e3%82%a3%e3%83%96%e3%83%bb%e9%81%b8%e6%8a%9e%e3%81%99%e3%82%8b%e6%96%b9/">【VBA知識 12】別のシートをアクティブ・選択する方法について ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90vba%e7%9f%a5%e8%ad%98-11%e3%80%91goto%e3%81%a7%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%92%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e5%a0%b4%e6%89%80%e3%81%be%e3%81%a7%e9%a3%9b%e3%81%b0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">504</post-id>	</item>
	</channel>
</rss>
