<?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/%e3%83%9e%e3%82%af%e3%83%ad/feed/" rel="self" type="application/rss+xml" />
	<link>https://dokugakuexcel.com</link>
	<description>初心者から中級者までシステム・関数・VBAを伝授します</description>
	<lastBuildDate>Mon, 17 Oct 2022 13:59:24 +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%e8%a1%8c%e3%83%bb%e5%88%97%e3%81%ae%e3%82%b3%e3%83%94%e3%83%bc%ef%bc%81%ef%bc%91%e3%81%a4%e3%83%bb%e8%a4%87%e6%95%b0%e3%81%ae%e8%a1%8c%e3%83%bb/?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%25e8%25a1%258c%25e3%2583%25bb%25e5%2588%2597%25e3%2581%25ae%25e3%2582%25b3%25e3%2583%2594%25e3%2583%25bc%25ef%25bc%2581%25ef%25bc%2591%25e3%2581%25a4%25e3%2583%25bb%25e8%25a4%2587%25e6%2595%25b0%25e3%2581%25ae%25e8%25a1%258c%25e3%2583%25bb</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e8%a1%8c%e3%83%bb%e5%88%97%e3%81%ae%e3%82%b3%e3%83%94%e3%83%bc%ef%bc%81%ef%bc%91%e3%81%a4%e3%83%bb%e8%a4%87%e6%95%b0%e3%81%ae%e8%a1%8c%e3%83%bb/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Sun, 11 Sep 2022 12:58:27 +0000</pubDate>
				<category><![CDATA[行・列操作]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[コピー]]></category>
		<category><![CDATA[列]]></category>
		<category><![CDATA[行]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=3468</guid>

					<description><![CDATA[普段コピーよく使用する動作ですが、まとめて行・列をコピーする場面があると思います。VBAでも同様に行・列のコピーが可能で、１つの行・列だけでなく複数の行・列もコピーをすることができます。 さらに値のみ貼り付けや数式の貼り [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>普段コピーよく使用する動作ですが、まとめて行・列をコピーする場面があると思います。<br>VBAでも同様に<strong><span class="marker-under">行・列のコピーが可能で、１つの行・列だけでなく複数の行・列もコピー</span></strong>をすることができます。</p>



<p>さらに<strong><span class="marker-under">値のみ貼り付けや数式の貼り付けなど様々な貼り付けの形式方法</span></strong><br>も紹介していますので、コピーと合わせて活用してみてください。</p>



<p>応用で、複数のコピーが大変な人向けに<br>配列を使ったコピー方法も紹介していますので是非参考にしてみてください。<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><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><ol><li><a href="#toc5" tabindex="0">・行のコピー</a></li><li><a href="#toc6" tabindex="0">・列のコピー</a></li></ol></li><li><a href="#toc7" tabindex="0">&#x2b1b;︎行のコピー</a><ol><li><a href="#toc8" tabindex="0">・１つの行をコピーする</a></li><li><a href="#toc9" tabindex="0">・複数の行をコピーする</a></li></ol></li><li><a href="#toc10" tabindex="0">&#x2b1b;︎列のコピー</a><ol><li><a href="#toc11" tabindex="0">・１つの列をコピーする</a></li><li><a href="#toc12" tabindex="0">・複数の列をコピーする</a></li></ol></li><li><a href="#toc13" tabindex="0">&#x2b1b;︎貼り付けの形式とプログラム</a></li><li><a href="#toc14" tabindex="0">&#x2b1b;︎公式の説明</a></li><li><a href="#toc15" 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">行:Rows(行番号).Copy<br>列:Columns(列番号).Copy または　　Columns(“列英字”).Copy</pre>



<h3 class="wp-block-heading"><span id="toc3">・複数の行・列のコピー</span></h3>



<pre class="wp-block-verse">行:Rows("開始行番号:終わり行番号").Copy<br>列:Columns(“開始列英字:終わり列英字”).Copy<br>　Range(Columns(開始列番号),Columns(終わり列番号)).Copy</pre>



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



<h3 class="wp-block-heading"><span id="toc5">・行のコピー</span></h3>



<pre class="wp-block-verse">Sub 行のコピー()<br>Rows(行番号を入力).Copy<br>End Sub</pre>



<h3 class="wp-block-heading"><span id="toc6">・列のコピー</span></h3>



<pre class="wp-block-verse">Sub 列をコピーする()<br>Columns(列番号).Copy<br>End Sub</pre>



<h2 class="wp-block-heading"><span id="toc7">&#x2b1b;︎行のコピー</span></h2>



<p>まずは<strong><span class="marker-under">行のコピー</span></strong>から説明します。<br>行はエクセルのシートでは横方向のセルを指します。</p>



<h3 class="wp-block-heading"><span id="toc8">・１つの行をコピーする</span></h3>



<p>まずは1行のコピー方法にていきましょう。<br>構文は下記の通りです。</p>



<p><strong><span class="fz-20px">Rows(<span class="bold-red">行番号</span>).Copy</span></strong></p>



<p>使用方法は簡単ですね。コピーしたい行番号を入力するだけで<br>コピーができます。</p>



<p>今回は<span class="bold-red">5行目</span>をコピーしてみましょう。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 行のコピー()</p><p>Rows(<span class="bold-red">5</span>).Copy</p><p>End Sub</p></blockquote>



<p>実行した結果はこちらです。</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="483" height="247" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-54.png" alt="" class="wp-image-3470" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-54.png 483w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-54-300x153.png 300w" sizes="(max-width: 483px) 100vw, 483px" /></figure>



<p>5行目が点線の枠で囲われており、コピーした事がわかりますね</p>



<h3 class="wp-block-heading"><span id="toc9">・複数の行をコピーする</span></h3>



<p>次は複数行をコピーする方法についてです。<br>例えば2行目から9行目までコピーする場合などですね。</p>



<p>構文は以下の通りです。<br><strong><span class="fz-20px">Rows(&#8220;<span class="bold-red">開始行番号</span>:<span class="bold-blue">終わり行番号</span>&#8220;).Copy</span></strong></p>



<p>こちらも単純ですね。<br>では見本で2行目から9行目までコピーしてみたいと思います。</p>



<p><span class="marker-under-red">開始行番号は2行目なので「<span class="bold-red">2</span>」。</span><br><span class="marker-under-blue">終わり行番号は9行目なので「<span class="bold-blue">9</span>」</span>となります。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 複数の行をコピーする()</p><p>Rows(&#8220;<span class="bold-red">2</span>:<span class="bold-blue">9</span>&#8220;).Copy</p><p>End Sub</p></blockquote>



<p>実行した結果はこちら。</p>



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



<p>2行目から9行目までコピーすることができました。</p>



<h2 class="wp-block-heading"><span id="toc10">&#x2b1b;︎列のコピー</span></h2>



<p>今度は<strong><span class="marker-under">列のコピー</span></strong>を見てみましょう。<br>列のコピーは行と比べて「<span class="bold-red">列番号</span>」または「<span class="bold-blue">列の英字</span>」で指定します。<br>しかし複数の列のコピーは少し工夫が必要になります。</p>



<h3 class="wp-block-heading"><span id="toc11">・１つの列をコピーする</span></h3>



<p>ではまず、1列のコピー方法を見ていきましょう。</p>



<p>構文はこちらです。列は2種類ありますね</p>



<pre class="wp-block-verse">・Columns(<span class="bold-red">列番号</span>).Copy
・Columns(“<span class="bold-blue">列</span><span class="bold-blue">の</span><span class="bold-blue">英字</span>”).Copy</pre>



<p>まずは列番号を入力する方法から紹介します。<br>通常の列は「英数字」で表示されていますよね。</p>



<p>しかし入力するのは列番号です。<br>列番号とは「A」は「1」、「B」は「2」などを指します。</p>



<p>しかし、「DA列」など数えるのは大変ですよね。<br>そこで<strong><span class="marker-under">簡単に列番号を求める方法</span></strong>を紹介します。</p>



<p>まず、<strong><span class="marker-under-red">求めたい列を選択</span></strong>します。<br>ここでは「DA列」を見本にしてみましょう。</p>



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



<p>この状態で<strong><span class="marker-under-red">「Ctrl」+「Shift」を押したまま「←」を押します</span></strong>。<br>すると列番号が表示されます。</p>



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



<p>これで「<span class="bold-red">DA列</span>」の列番号は「<span class="bold-red">105</span>」番目ということがわかりました。<br>こちらを活用してコピーしてみましょう。</p>



<p>構文はこちらです。</p>



<p><strong><span class="fz-20px">Columns(<span class="bold-red">列番号</span>).Copy</span></strong></p>



<p>では先ほども求めた列番号「<span class="bold-red">105</span>」を入力します。<br>プログラムはこのようになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 列をコピーする()</p><p>Columns(<span class="bold-red">105</span>).Copy</p><p>End Sub</p></blockquote>



<p>実行した結果はこのようになります。</p>



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



<p>「DA」列がコピーできました。</p>



<p>ちなみに<strong><span class="marker-under-blue">英数字を入力してもコピーは可能</span></strong>です。<br>構文はこちらです。</p>



<p><strong><span class="fz-20px">Columns(“<span class="bold-blue">列</span></span><span class="fz-20px"><span class="bold-blue">の</span></span><span class="fz-20px"><span class="bold-blue">英字</span>”).Copy</span></strong></p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 列をコピーする()</p><p>Columns(&#8220;<span class="bold-blue">DA</span>&#8220;).Copy</p><p>End Sub</p></blockquote>



<p>こちらのプログラムでもDA列をコピーすることができます。</p>



<h3 class="wp-block-heading"><span id="toc12">・複数の列をコピーする</span></h3>



<p>次は<strong><span class="marker-under">複数列コピーする方法</span></strong>を見ていきましょう。<br>こちらは<span class="marker-under-red"><strong><span class="bold-red">列番号</span>でコピーする方法</strong></span>と<strong><span class="marker-under-blue"><span class="bold-blue">列の英字</span>でコピーする方法</span></strong>を紹介します。</p>



<p>まずは列の英字でコピーする方法を見てみましょう。<br>構文はこちらです。</p>



<p><strong><span class="fz-20px">Columns(“<span class="bold-red">開始列英字</span>:<span class="bold-blue">終わり列英字</span>”).Copy</span></strong></p>



<p>こちらはイメージしやすいと思います。<br>例えば<strong>「<span class="bold-red">B列</span>から<span class="bold-blue">F列</span>」</strong>をコピーしたい場合はこのようになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 複数列をコピーする()</p><p>Columns(&#8220;<span class="bold-red">B</span>:<span class="bold-blue">F</span>&#8220;).Copy</p><p>End Sub</p></blockquote>



<p>それでは実行してみましょう。<br>実行してみた結果はこちらです。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-59.png" alt="" class="wp-image-3475" width="432" height="176" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-59.png 619w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-59-300x123.png 300w" sizes="(max-width: 432px) 100vw, 432px" /></figure>



<p>B列からF列までコピーすることができました。</p>



<p>もう１つの<strong><span class="marker-under">列番号で複数列コピーする方法</span></strong>も見てみましょう。<br>構文はこちらです。</p>



<p><strong><span class="fz-20px">Range(Columns(<span class="bold-red">開始列番号</span>),Columns(<span class="bold-blue">終わり列番号</span>)).Copy</span></strong></p>



<p>先程は英字で指定していましたがこちらは数値で入力できます。</p>



<p>　</p>



<p>なので見本の「B列からF列」をコピーしたい場合は<br>「B」は「<span class="bold-red">2</span>」、「F」は「<span class="bold-blue">6</span>」に当てはまるので<br>プログラムはこのようになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 複数列をコピーする()</p><p>Range(Columns(<span class="bold-red">2</span>), Columns(<span class="bold-blue">6</span>)).Copy</p><p>End Sub</p></blockquote>



<p>実行した結果はこちらです。</p>



<p>B列からF列までコピーすることができました。</p>



<h2 class="wp-block-heading"><span id="toc13">&#x2b1b;︎貼り付けの形式とプログラム</span></h2>



<p>これまでは<strong><span class="marker-under">コピーの方法</span></strong>についてまとめました。<br>そのコピーした行・列を貼り付けるのですが、<strong><span class="marker-under">値のみや書式など<br>様々な貼り付け方法が存在</span></strong>します。</p>



<p>そこで各貼り付け方法を見ていきましょう。</p>



<p>貼り付けの表を参照してください。</p>



<p></p>



<pre class="wp-block-verse">貼り付け位置.PasteSpecial<span class="bold-red"> Paste:=</span><span class="bold-blue">貼り付け内容</span>,<span class="bold-red">Operation:=</span><span class="bold-blue">演算内容</span>,<span class="bold-red">SkipBlanks:=</span><span class="bold-blue">True Or False</span>,<span class="bold-red">Transpose:=</span><span class="bold-blue">True Or False</span>)<br>※PasteSpecial以降は省略可</pre>



<p>　</p>



<p>各貼り付けのオプションを下の表にまとめました。</p>



<figure class="wp-block-table is-style-regular"><table><thead><tr><th>内容</th><th>Ｎo</th><th>形式</th><th>詳細</th></tr></thead><tbody><tr><td>Paste</td><td>①</td><td>xlpasteAll</td><td>すべて</td></tr><tr><td></td><td>②</td><td>xlpasteFormulas</td><td>数式</td></tr><tr><td></td><td>③</td><td>xlPasteValues</td><td>値</td></tr><tr><td></td><td>④</td><td>xlpasteFormats</td><td>書式</td></tr><tr><td></td><td>⑤</td><td>xlpasteComments</td><td>コメント</td></tr><tr><td></td><td>⑥</td><td>xlPasteValidation</td><td>入力規則</td></tr><tr><td></td><td>⑦</td><td>xlPasteAllUsingSourceTheme</td><td>コピー元のテーマを使用してすべて貼り付け</td></tr><tr><td></td><td>⑧</td><td>xlPasteAllExceptBorders</td><td>罫線を除くすべて</td></tr><tr><td></td><td>⑨</td><td>xlpasteColumnWidths</td><td>列幅</td></tr><tr><td></td><td>⑩</td><td>xlpasteFormulasAndNumberFormats</td><td>数式と数値の書式</td></tr><tr><td></td><td>⑪</td><td>xlPasteValuesAndNumberFormats</td><td>値と数値の書式</td></tr><tr><td></td><td>⑫</td><td>xlPasteAllMergingConditionalFormats</td><td>すべて結合されている条件付き書式</td></tr><tr><td>Operation</td><td>⑬</td><td>xlPasteSpecialOperationNone</td><td>しない</td></tr><tr><td></td><td>⑭</td><td>xlPasteSpecialOperationAdd</td><td>加算</td></tr><tr><td></td><td>⑮</td><td>xlPasteSpecialOperationSubtract</td><td>減算</td></tr><tr><td></td><td>⑯</td><td>xlPasteSpecialOperationMultiply</td><td>乗算</td></tr><tr><td></td><td>⑰</td><td>xlPasteSpecialOperationDivide</td><td>除算</td></tr><tr><td>SkipBlanks</td><td>⑱</td><td>True</td><td>空白セルを無視する</td></tr><tr><td></td><td>⑲</td><td>False</td><td>空白セルをしない</td></tr><tr><td>Transpose</td><td>⑳</td><td>True</td><td>行列を入れ替える</td></tr><tr><td></td><td>㉑</td><td>False</td><td>行列を入れ替えない</td></tr></tbody></table></figure>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-64.png" alt="" class="wp-image-2739" width="591" height="412" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-64.png 770w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-64-300x208.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-64-768x534.png 768w" sizes="(max-width: 591px) 100vw, 591px" /></figure>



<p>では例を見てみましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>数値のみ貼り付けするときは…<br><strong><span class="marker-under-red">貼り付け位置.PasteSpecial Paste:=xlPasteValues</span></strong></p></blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>コメントの貼り付けと行列を入れ替えるときは…<br><strong><span class="marker-under-red">貼り付け位置.PasteSpecial Paste:=xlpasteComments, Transpose:=True</span></strong></p></blockquote>



<p>それぞれの貼り付け方法の意味は通常の貼り付けの記事でまとめてますので、下記リンクにてご覧ください。</p>



<p>貼り付けの記事についてはこちらから☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90%e6%a7%98%e3%80%85%e3%81%aa%e8%b2%bc%e3%82%8a%e4%bb%98%e3%81%91%e3%80%91%e5%80%a4%e3%81%ae%e8%b2%bc%e3%82%8a%e4%bb%98%e3%81%91%e3%83%bb%e8%a1%8c%e3%81%a8%e5%88%97%e3%82%92%e5%85%a5%e3%82%8c/">【様々な貼り付け】値の貼り付け・行と列を入れ替えて貼り付ける方法などのオプション一覧 ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



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



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



<p><a href="https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/copy-method-visual-basic-for-applications">Copy メソッド (Visual Basic for Applications) | Microsoft Docs</a></p>



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



<p>いかがだったでしょうか。<br>行・列のコピーは結構使用頻度も多いと思いますので<br>役立つ知識だとおもいます。</p>



<p>コピペについてまとめた記事もありますので参考にしてください</p>



<p>また、今回は数値・英字でコピー範囲を指定しましたが、<br>変数でも対応が可能です。<br>そちらについても別の記事でまとめてますので参考にしてみて下さい</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%e8%a1%8c%e3%83%bb%e5%88%97%e3%81%ae%e3%82%b3%e3%83%94%e3%83%bc%ef%bc%81%ef%bc%91%e3%81%a4%e3%83%bb%e8%a4%87%e6%95%b0%e3%81%ae%e8%a1%8c%e3%83%bb/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3468</post-id>	</item>
		<item>
		<title>【マクロVBA】Dir関数で指定フォルダから対象ファイル・ブックが存在するか確認、処理する！一覧も可</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91dir%e9%96%a2%e6%95%b0%e3%81%a7%e6%8c%87%e5%ae%9a%e3%83%95%e3%82%a9%e3%83%ab%e3%83%80%e3%81%8b%e3%82%89%e5%af%be%e8%b1%a1%e3%83%95%e3%82%a1%e3%82%a4/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e3%2580%2591dir%25e9%2596%25a2%25e6%2595%25b0%25e3%2581%25a7%25e6%258c%2587%25e5%25ae%259a%25e3%2583%2595%25e3%2582%25a9%25e3%2583%25ab%25e3%2583%2580%25e3%2581%258b%25e3%2582%2589%25e5%25af%25be%25e8%25b1%25a1%25e3%2583%2595%25e3%2582%25a1%25e3%2582%25a4</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91dir%e9%96%a2%e6%95%b0%e3%81%a7%e6%8c%87%e5%ae%9a%e3%83%95%e3%82%a9%e3%83%ab%e3%83%80%e3%81%8b%e3%82%89%e5%af%be%e8%b1%a1%e3%83%95%e3%82%a1%e3%82%a4/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Wed, 07 Sep 2022 13:05:11 +0000</pubDate>
				<category><![CDATA[ブック操作]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[Dir]]></category>
		<category><![CDATA[ファイル名]]></category>
		<category><![CDATA[一覧]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[マクロ]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=3430</guid>

					<description><![CDATA[指定したフォルダにどのようなファイルが存在するか、対象のファイル・ブックが存在するか確認するためには「Dir関数」の知識が必要です。 指定フォルダにファイルが随時入ってきて、処理を繰り返す動作などにはよく使用されます。  [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>指定した<strong><span class="marker-under">フォルダにどのようなファイルが存在するか、対象のファイル・ブックが存在する</span></strong>か<br>確認するためには<strong><span class="marker-under">「Dir関数」</span></strong>の知識が必要です。</p>



<p>指定フォルダにファイルが随時入ってきて、処理を繰り返す動作などにはよく使用されます。</p>



<p>さらに「ワイルドカード」との相性もよく、指定した文字を含むファイルのみ確認したいときや<br>Excelのファイル・PDFファイルなどファイル形式毎にも対応する方法を紹介していますので<br>是非参考にしてみてください。</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">■忙しい人向けのコピペ用プログラム</a></li><li><a href="#toc2" tabindex="0">&#x2b1b;︎こんなことができるようになる！</a></li><li><a href="#toc3" tabindex="0">■忙しい人向けのコピペ用プログラム</a></li><li><a href="#toc4" tabindex="0">&#x2b1b;︎関数の仕組み</a></li><li><a href="#toc5" tabindex="0">&#x2b1b;︎指定フォルダ・ファイルから対象ファイルがあるか確認する</a><ol><li><a href="#toc6" tabindex="0">・対象のシートがあるか確認する</a></li><li><a href="#toc7" tabindex="0">・対象フォルダにあるファイルを順に確認する</a></li><li><a href="#toc8" tabindex="0">・指定文字を含むファイルのみ確認する</a></li></ol></li><li><a href="#toc9" tabindex="0">&#x2b1b;︎読み取り専用などファイルの属性を絞って確認する。</a></li><li><a href="#toc10" tabindex="0">&#x2b1b;︎補足の知識</a></li><li><a href="#toc11" tabindex="0">&#x2b1b;︎公式の説明</a></li><li><a href="#toc12" tabindex="0">&#x2b1b;︎まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">■忙しい人向けのコピペ用プログラム</span></h2>



<p><strong><span class="bold-red">赤文字</span></strong>の見本を打ち換えて使用してください。</p>



<p>見本ではメッセージボックスですが、処理したい方法に合わせてカスタムして使用してください。</p>



<pre class="wp-block-verse">Sub Dir確認()
Dim Filename As String
Filename = Dir("<strong><span class="bold-red">C:\検証ファイル\ブックA</span></strong>.xlsx")
If Filename = "" Then
MsgBox "対象シートはありません"
Else
MsgBox "対象シートは存在します"
End If
End Sub</pre>



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



<p>・指定フォルダから対象のファイルが存在するか確認することができる<br>・指定フォルダから指定した文字・数値を含むファイルのみを確認することができる<br>・指定フォルダから対象の拡張子のファイルを確認することができる</p>



<h2 class="wp-block-heading"><span id="toc3">■忙しい人向けのコピペ用プログラム</span></h2>



<p>「ファイルのパス」の部分に対象のファイルのパスを貼り付けると<br>変数Filenameに順次対象ファイル内のファイル名が格納されます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub Dir全ファイル確認()</p><p>Dim Filename As String, WriteRow As Long</p><p>Filename = Dir(&#8220;ファイルのパス*.*&#8221;)</p><p>Do While Filename &lt;&gt; &#8220;&#8221;</p><p>Filename = Dir</p><p>Loop</p><p>End Sub</p></blockquote>



<h2 class="wp-block-heading"><span id="toc4">&#x2b1b;︎関数の仕組み</span></h2>



<pre class="wp-block-verse"><strong>出力先＝Dir(<span class="bold-red">pathname</span>, [ <span class="bold-blue">attributes</span> ] )</strong></pre>



<p><span class="bold-red">pathname</span>…省略可。フォルダ名やファイル名を入力<br><strong><span class="bold-blue">attributes</span></strong> …省略可。ファイルの属性を入力</p>



<p>attributesの入力項目については下記表をご参照ください。</p>



<figure class="wp-block-table"><table><thead><tr><th><strong>定数</strong></th><th>値</th><th><strong>説明</strong></th></tr></thead><tbody><tr><td><strong>vbNormal</strong></td><td>0</td><td>(既定値) 属性のないファイル。</td></tr><tr><td><strong>vbReadOnly</strong></td><td>1</td><td>属性のないファイルと読み取り専用のファイル。</td></tr><tr><td><strong>vbHidden</strong></td><td>2</td><td>属性のないファイルと隠しファイル。</td></tr><tr><td><strong>vbSystem</strong></td><td>4</td><td>属性のないファイルとシステム ファイル。 Macintosh では使用できません。</td></tr><tr><td><strong>vbVolume</strong></td><td>8</td><td>ボリューム ラベル。他の属性を指定した場合は、vbVolume は無視されます。 Macintosh では使用できません。</td></tr><tr><td><strong>vbDirectory</strong></td><td>16</td><td>属性のないファイルとディレクトリまたはフォルダー。</td></tr><tr><td><strong>vbAlias</strong></td><td>64</td><td>指定されたファイル名はエイリアスです。 Macintosh でのみ使用できます。</td></tr></tbody></table><figcaption>引用元：<a href="https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/dir-function">Dir 関数 (Visual Basic for Applications) | Microsoft Docs</a></figcaption></figure>



<p></p>



<p></p>



<h2 class="wp-block-heading"><span id="toc5">&#x2b1b;︎指定フォルダ・ファイルから対象ファイルがあるか確認する</span></h2>



<h3 class="wp-block-heading"><span id="toc6">・対象のシートがあるか確認する</span></h3>



<p>まず、対象シートがあるか確認したいと思います。<br>今回は見本で「検証ファイル」という名前のフォルダに「ブックA.xlsx」という</p>



<p>ファイルがあるか確認したいと思います。</p>



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



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><br><strong><span class="bold-green">出力先</span>＝Dir(<span class="bold-red">pathname</span>, [ attributes ] )</strong></p></blockquote>



<p>それでは構文に当てはめてみましょう。<br>出力先を変数の「<span class="bold-green">Filename</span>」としました。<br>「<span class="bold-red">pathname</span>」についてはフォルダとファイル名なので「C:\検証ファイル\ブックA」となります。</p>



<p>当てはめた構文はこちらです。</p>



<p><strong><span class="fz-20px"><span class="bold-green">Filename </span>= Dir(&#8220;<span class="bold-red">C:\検証ファイル\ブックA.xlsx</span>&#8220;)</span></strong></p>



<p>「.xlsx」といった拡張子も入力するようにしてください。</p>



<p>では実際にプログラムを入力してみましょう。<br>プログラムはこちらです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub Dir確認()</p><p>Dim Filename As String</p><p>Filename = Dir(&#8220;C:\検証ファイル\ブックA.xlsx&#8221;)</p><p>End Sub</p></blockquote>



<p>では確認してみましょう。<br>Dir関数でファイルの有無を確認していますが、ファイルがあった場合は<br>ファイル名を出力します。反対にファイルがなければ空白を出力します。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="830" height="279" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-30.png" alt="" class="wp-image-3432" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-30.png 830w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-30-300x101.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-30-768x258.png 768w" sizes="(max-width: 830px) 100vw, 830px" /></figure>



<p>そしてIFでファイル名を出力した変数「Filename」が<strong><span class="marker-under-red">空白だった場合は<br>「対象シートはありません」</span></strong>のメッセージを表示し、<strong><span class="marker-under-blue">空白でなければ<br>「対象シートは存在します」</span></strong>のメッセージを表示させます。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub Dir確認()</p><p>Dim Filename As String</p><p>Filename = Dir(&#8220;C:\検証ファイル\ブックA.xlsx&#8221;)</p><p>If Filename = &#8220;&#8221; Then<br>MsgBox &#8220;対象シートはありません&#8221;<br>Else<br>MsgBox &#8220;対象シートは存在します&#8221;<br>End If</p><p>End Sub</p></blockquote>



<p>結果はこのようになります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="283" height="279" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-31.png" alt="" class="wp-image-3433" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-31.png 283w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-31-100x100.png 100w" sizes="(max-width: 283px) 100vw, 283px" /></figure>



<p>変数「Filename」に対象のファイル名が格納され、「対象シートは存在します」のメッセージが出ました。</p>



<p>では「C:\検証ファイル」に存在しない「ブックD」があるか確認するパターンも見てみましょう。</p>



<p>実行した結果はこちらです。</p>



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



<p>変数「Filename」は空白のままなので、「対象シートはありません」のメッセージが出ました。</p>



<h3 class="wp-block-heading"><span id="toc7">・対象フォルダにあるファイルを順に確認する</span></h3>



<p>さきほどは対象フォルダに指定したファイルがあるか確認しました。<br>今度はファイルを固定せずに対象フォルダ内の全てのファイルを<br>確認してみたいとおもいます。</p>



<p>では、見本のプログラムから見てみましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub Dir全ファイル確認()</p><p>Dim Filename As String, WriteRow As Long</p><p>Filename = Dir(&#8220;C:\検証ファイル*.xlsx&#8221;)<br>WriteRow = 1</p><p></p><p>Do While Filename &lt;&gt; &#8220;&#8221;</p><p>Cells(WriteRow, 1) = Filename<br>WriteRow = WriteRow + 1<br>Filename = Dir</p><p>Loop</p><p></p><p>End Sub</p></blockquote>



<p>　</p>



<p><strong><span class="marker-under-red">「Do While Filename &lt;&gt; &#8220;&#8221;」から「Loop」で<br>ファイル名が格納される変数「Filename」が空白になるまで<br>繰り返し処理</span></strong>を行います。</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90vba%e7%9f%a5%e8%ad%98-8%e3%80%91doloop%e3%81%a7%e6%9d%a1%e4%bb%b6%e3%81%be%e3%81%a7%e7%b9%b0%e3%82%8a%e8%bf%94%e3%81%97%e3%83%bb%e3%83%ab%e3%83%bc%e3%83%97%e5%8b%95%e4%bd%9c%e3%82%92/">【マクロVBA】Do…Loopで指定条件まで繰り返し・ループする!WhileとUntilの違いとは ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>ポイントは<strong><span class="marker-under">「Filename＝Dir」</span></strong>についてです。<br>ループ前に「C:\検証ファイル」で対象フォルダのファイル名を抜き出していますが、<br>再度、「Filename＝Dir」でファイル名を出力していますよね。</p>



<p>一度、Dirで読み取った場合、次に読み込むフォルダ引数なしの</p>



<p><strong><span class="marker-under">「Dir」単体では出力していないファイルを順次出力</span></strong>していきます。<br>つまり、対象フォルダにあるファイルを順次確認できるといったプログラムになります。</p>



<p>　<br>ファイル名が「*.xlsx」となっていますがこちらは後ほど紹介します。</p>



<p>では実行していきましょう。<br>A1セルから読み取ったファイルを順次書き込んでいきます。</p>



<p>実行した結果はこちらです。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-33.png" alt="" class="wp-image-3435" width="632" height="262" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-33.png 692w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-33-300x124.png 300w" sizes="(max-width: 632px) 100vw, 632px" /></figure>



<p>A列に指定フォルダ「C:\検証ファイル」の中にある「.xlsx」ファイルを書き出しすることができました。</p>



<h3 class="wp-block-heading"><span id="toc8">・指定文字を含むファイルのみ確認する</span></h3>



<p>先程の応用になります。<br>前回は対象フォルダ内の全ファイルを確認しましたが<br>今回は<strong><span class="marker-under">指定文字を含むファイルのみ確認</span></strong>したいと思います。</p>



<p>使用するのは<strong><span class="marker-under">「&#x2733;︎（ワイルドカード）」</span></strong>になります。<br>先ほどもファイル名を「*.xlsx」として使用していました。</p>



<p>機能として、<strong><span class="marker-under-red">ワイルドカードを入力すると全ての文字数値を対象</span></strong>としてくれます。</p>



<p>　<br>例えば「<strong><span class="bold-red">A</span></strong>」を含むファイルを確認したい場合は「&#x2733;︎<strong><span class="bold-red">A</span></strong>&#x2733;︎」となります。<br>さらに「<strong>頭文字を<span class="bold-red">B</span>とし、それ以降の文字・数値は全て対象</strong>」<br>という場合には「<strong><span class="bold-red">B</span></strong>&#x2733;︎」となります。</p>



<p>こちらを応用して先程のプログラムに書き込んでみたいと思います。</p>



<p>今回は「<span class="bold-red">ブック</span>」という文字を含むファイルを確認しましょう。<br>プログラムはこのようになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub Dir全ファイル確認()</p><p>Dim Filename As String, WriteRow As Long</p><p>Filename = Dir(&#8220;C:\検証ファイル*<span class="bold-red">ブック</span>*&#8221;)<br>WriteRow = 1</p><p>Do While Filename &lt;&gt; &#8220;&#8221;</p><p>Cells(WriteRow, 1) = Filename<br>WriteRow = WriteRow + 1<br>Filename = Dir</p><p>Loop</p><p>End Sub</p></blockquote>



<p>実行した結果はこちら。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-35.png" alt="" class="wp-image-3437" width="273" height="174"/></figure>



<p>「ブック」という文字を含むファイルを確認できましたね。</p>



<p>先程はブック名でしたが<strong><span class="marker-under-blue">拡張子でも絞り込みが可能</span></strong>です。<br>条件を「&#x2733;︎<span class="bold-red">.pdf</span>」としてみましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub Dir全ファイル確認()</p><p>Dim Filename As String, WriteRow As Long</p><p>Filename = Dir(&#8220;C:\検証ファイル*.<span class="bold-red">pdf</span>&#8220;)<br>WriteRow = 1</p><p>Do While Filename &lt;&gt; &#8220;&#8221;</p><p>Cells(WriteRow, 1) = Filename<br>WriteRow = WriteRow + 1<br>Filename = Dir</p><p>Loop</p><p>End Sub</p></blockquote>



<p>実行した結果はこちらです。</p>



<p><strong><span class="marker-under">「PDF」のファイルを確認することができました。</span></strong></p>



<h2 class="wp-block-heading"><span id="toc9">&#x2b1b;︎読み取り専用などファイルの属性を絞って確認する。</span></h2>



<p>ファイルの属性には読み取り専用ファイルや隠しファイル<br>など存在します。</p>



<p>その<strong><span class="marker-under">属性を絞ってもファイルを確認することができます。</span></strong><br>では再度、構文をみてみましょう。</p>



<p><strong><span class="bold-green">出力先</span>＝Dir(<span class="bold-red">pathname</span>, [ <span class="bold-blue">attributes</span> ] )</strong></p>



<p>今回は「<span class="bold-blue">attributes</span>」の部分が該当します。<br>では下の表をご覧ください。</p>



<p></p>



<figure class="wp-block-table"><table><thead><tr><th><strong><span class="bold-blue">定数</span></strong></th><th>値</th><th><strong>説明</strong></th></tr></thead><tbody><tr><td><strong>vbNormal</strong></td><td>0</td><td>(既定値) 属性のないファイル。</td></tr><tr><td><strong>vbReadOnly</strong></td><td>1</td><td>属性のないファイルと読み取り専用のファイル。</td></tr><tr><td><strong>vbHidden</strong></td><td>2</td><td>属性のないファイルと隠しファイル。</td></tr><tr><td><strong>vbSystem</strong></td><td>4</td><td>属性のないファイルとシステム ファイル。 Macintosh では使用できません。</td></tr><tr><td><strong>vbVolume</strong></td><td>8</td><td>ボリューム ラベル。他の属性を指定した場合は、vbVolume は無視されます。 Macintosh では使用できません。</td></tr><tr><td><strong>vbDirectory</strong></td><td>16</td><td>属性のないファイルとディレクトリまたはフォルダー。</td></tr><tr><td><strong>vbAlias</strong></td><td>64</td><td>指定されたファイル名はエイリアスです。 Macintosh でのみ使用できます。</td></tr></tbody></table><figcaption>引用元：<a href="https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/dir-function">Dir 関数 (Visual Basic for Applications) | Microsoft Docs</a></figcaption></figure>



<p></p>



<p><strong><span class="marker-under">入力する値としては「0,1,2,4,8,16,64」</span></strong>を入力し、<br>その番号に応じて属性を絞ってファイル確認をします。</p>



<p><strong><span class="marker-under-red">入力を省略した場合は属性のないファイルが対象</span></strong>となります。</p>



<p>今回は見本で隠しファイルを作成してみたいと思います。<br>対象フォルダは先ほどと同様、「C:\検証ファイル」で「フォルダ」というファイルを含むファイルを書き出してみようと思います。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="301" height="284" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-37.png" alt="" class="wp-image-3439"/></figure>



<p>例として<strong><span class="marker-under-blue">「ファイルB」というファイルは隠しファイルとしたいと思います</span></strong>。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-39.png" alt="" class="wp-image-3441" width="473" height="450" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-39.png 650w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-39-300x285.png 300w" sizes="(max-width: 473px) 100vw, 473px" /></figure>



<p>これで「ファイルB」が隠しファイルとなりました。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-40.png" alt="" class="wp-image-3442" width="428" height="240" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-40.png 594w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-40-300x168.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-40-120x68.png 120w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-40-160x90.png 160w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-40-320x180.png 320w" sizes="(max-width: 428px) 100vw, 428px" /></figure>



<p>ではプログラムです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub Dir全ファイル確認()</p><p>Dim Filename As String, WriteRow As Long</p><p>Filename = Dir(&#8220;C:\検証ファイル*.*&#8221;, <span class="bold-blue">0</span>)<br>WriteRow = 1</p><p></p><p>Do While Filename &lt;&gt; &#8220;&#8221;</p><p>Cells(WriteRow, 1) = Filename<br>WriteRow = WriteRow + 1<br>Filename = Dir</p><p>Loop</p><p></p><p>End Sub</p></blockquote>



<p>「<span class="bold-blue">attributes</span>」を<span class="bold-blue">0</span>の<strong><span class="marker-under-blue">属性のないファイル</span></strong>で実行してみましょう。<br>「ファイルB」は隠しファイルなので含まれず、残りのすべてのファイルが出力されました。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-41.png" alt="" class="wp-image-3443" width="293" height="249" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-41.png 406w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-41-300x255.png 300w" sizes="(max-width: 293px) 100vw, 293px" /></figure>



<p>では「<span class="bold-blue">attributes</span>」を「<span class="bold-blue">2</span>」にして隠しファイルも確認するようにしましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub Dir全ファイル確認()</p><p>Dim Filename As String, WriteRow As Long</p><p>Filename = Dir(&#8220;C:\検証ファイル*.*&#8221;, <span class="bold-blue">2</span>)<br>WriteRow = 1</p><p>Do While Filename &lt;&gt; &#8220;&#8221;</p><p>Cells(WriteRow, 1) = Filename<br>WriteRow = WriteRow + 1<br>Filename = Dir</p><p>Loop</p><p>End Sub</p></blockquote>



<p>結果はこのようになります。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-42.png" alt="" class="wp-image-3444" width="252" height="276" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-42.png 350w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-42-274x300.png 274w" sizes="(max-width: 252px) 100vw, 252px" /></figure>



<p>今度は「ファイルB」も出力してくれました。</p>



<p>これで属性の絞り込みもできますね。</p>



<h2 class="wp-block-heading"><span id="toc10">&#x2b1b;︎補足の知識</span></h2>



<p>「出力先＝Dir」で対象フォルダ内のファイルを<br>順次確認しましたが、<strong><span class="marker-under">日付順やファイル名順に抜き出し<br>たい方はファイルシステムの確認が必要</span></strong>です。</p>



<p>確認方法としてPCの画面の<strong><span class="marker-under-red">「ローカルディスクC」</span></strong>を右クリックして<br><strong><span class="marker-under-red">「プロパティ」</span></strong>を選択します。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="417" height="537" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-43.png" alt="" class="wp-image-3445" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-43.png 417w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-43-233x300.png 233w" sizes="(max-width: 417px) 100vw, 417px" /></figure>



<p>項目の１つに<strong><span class="marker-under-red">「ファイル　システム」</span></strong>があるので確認してみましょう。</p>



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



<p>いずれにしてもPCの設定で変わってしまうので<br>順を指定して処理したい場合は一度、変数やセルに格納して並び替えた後、<br>その順に処理するのが望ましいと思います。</p>



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



<p><br>わかりやすいように説明したため公式と使用する語句が異なりますが<br>マイクロソフト公式の説明については下記のリンクを参照してください。☟<br><a href="https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/dir-function">Dir 関数 (Visual Basic for Applications) | Microsoft Docs</a></p>



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



<p>いかがだったでしょうか。<br>Dirを身につけると、指定フォルダに該当するファイルの<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%91dir%e9%96%a2%e6%95%b0%e3%81%a7%e6%8c%87%e5%ae%9a%e3%83%95%e3%82%a9%e3%83%ab%e3%83%80%e3%81%8b%e3%82%89%e5%af%be%e8%b1%a1%e3%83%95%e3%82%a1%e3%82%a4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3430</post-id>	</item>
		<item>
		<title>【マクロVBAエラー】ブックをCloseで閉じれない「インデックスが有効範囲にありません」原因対処法</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%82%a8%e3%83%a9%e3%83%bc%e3%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92close%e3%81%a7%e9%96%89%e3%81%98%e3%82%8c%e3%81%aa%e3%81%84%e3%80%8c%e3%82%a4%e3%83%b3/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e3%2580%2591%25e3%2583%2596%25e3%2583%2583%25e3%2582%25af%25e3%2582%2592close%25e3%2581%25a7%25e9%2596%2589%25e3%2581%2598%25e3%2582%258c%25e3%2581%25aa%25e3%2581%2584%25e3%2580%258c%25e3%2582%25a4%25e3%2583%25b3</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%82%a8%e3%83%a9%e3%83%bc%e3%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92close%e3%81%a7%e9%96%89%e3%81%98%e3%82%8c%e3%81%aa%e3%81%84%e3%80%8c%e3%82%a4%e3%83%b3/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Sat, 03 Sep 2022 16:07:29 +0000</pubDate>
				<category><![CDATA[エラー対策]]></category>
		<category><![CDATA[マクロVBA応用・便利技]]></category>
		<category><![CDATA[エラー]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[close]]></category>
		<category><![CDATA[「実行時エラー&#039;9&#039;:インデックスが有効範囲にありません」]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=3380</guid>

					<description><![CDATA[マクロVBAの機能の１つに「Close」という機能が存在します。使用方法としてはブックを閉じる際に使用します。 別のブックから数値を参照したりなと、ブックを経由する場合はよく使用する機能です。しかし、使用方法を誤るとエラ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>マクロVBAの機能の１つに<span class="marker-under"><strong>「Close」</strong></span>という機能が存在します。<br>使用方法としては<strong><span class="marker-under">ブックを閉じる</span></strong>際に使用します。</p>



<p>別のブックから数値を参照したりなと、ブックを経由する場合はよく使用する機能です。<br>しかし、使用方法を誤るとエラーが発生し、閉じることができません。</p>



<p>そこで今回は<strong><span class="marker-under-red">ブックを閉じる際に発生するエラーに対しての原因と対処法</span></strong>を紹介します。<br>それでは見ていきましょう。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</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;︎closeのエラーの原因と対処法</a><ol><li><a href="#toc3" tabindex="0">・「実行時エラー&#8217;9&#8242;:インデックスが有効範囲にありません」について</a></li><li><a href="#toc4" tabindex="0">・プログラムが途中で停止、実行中のブックが閉じる</a></li></ol></li><li><a href="#toc5" tabindex="0">&#x2b1b;︎補足　ブックを閉じる際の確認画面を表示させない方法</a></li><li><a href="#toc6" tabindex="0">&#x2b1b;︎まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">&#x2b1b;︎通常のブックの閉じ方</span></h2>



<p>まず、エラー対応の前に<strong><span class="marker-under">通常のブックを閉じる方法</span></strong>を説明します。<br>構文は以下の通りです。</p>



<pre class="wp-block-verse"><strong>Workbooks("<span class="bold-red">ここに閉じたいブック名を記入</span>").Close</strong></pre>



<p>とてもシンプルですね。</p>



<p>では見本で<span class="bold-red">「見本.xlsx」</span>というブックを閉じるプログラムを見ていきましょう。<br>前提として<strong><span class="marker-under-blue">対象のブックが開いてあることが条件</span></strong>となります。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ブックを閉じる()</p><p>Workbooks(&#8220;<span class="bold-red">見本.xlsx</span>&#8220;).Close</p><p>End Sub</p></blockquote>



<p>こちらのプログラムで「<span class="bold-red">見本.xlsx</span>」のブックを閉じることができました。<br>結論としてブックを閉じる際に使用する<strong><span class="marker-under-red">「Close」はブック名で指示</span></strong>します。<br>これが原因でエラーが生じる場合もあります。<br>では、ブックを「close」で閉じる際のエラーの原因と対処法を見ていきましょう。</p>



<h2 class="wp-block-heading"><span id="toc2">&#x2b1b;︎closeのエラーの原因と対処法</span></h2>



<h3 class="wp-block-heading"><span id="toc3">・「実行時エラー&#8217;9&#8242;:インデックスが有効範囲にありません」について</span></h3>



<p>こちらはブック名で指定していない可能性があります。<br>よくある原因としては<strong><span class="marker-under-red">フルパスでファイルを開いて、そのフルパスを活用して「close」<br>することでエラーが生じてしまいます</span></strong>。</p>



<p>ではプログラムの例を見ていきましょう。<br>今回は「見本」ブックを開いて、処理を行い、閉じるプログラムです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ブックを閉じる()</p><p>Dim FilePath As String</p><p>FilePath =<span class="bold-red"> &#8220;C:\excel\見本.xlsx&#8221;</span></p><p>Workbooks.Open FilePath</p><p></p><p>&#8216;ここに処理プログラム</p><p></p><p>Workbooks(<span class="bold-red">FilePath</span>).Close</p><p>End Sub</p></blockquote>



<p>一見問題無さそうですが実行したらこのようになります。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-3.png" alt="" class="wp-image-3384" width="373" height="174" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-3.png 486w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-3-300x140.png 300w" sizes="(max-width: 373px) 100vw, 373px" /></figure>



<p><strong><span class="marker-under-red">「実行時エラー&#8217;9&#8242;:インデックスが有効範囲にありません」というエラーが発生</span></strong>しました。</p>



<p>原因として<strong><span class="marker-under-red">ブックを開く際の参照と閉じる際の参照の違いに問題</span></strong>があります。<br>ブックを開く際の<strong><span class="marker-under">「Open」はフルパス</span></strong>でなければなりませんが<br>ブックを閉じる際の<strong><span class="marker-under">「close」はファイル名</span></strong>でなければなりません。</p>



<p>しかし、パスが繰り返し動作やセルに入力してあるパスを参照する際には<br>プログラムにファイル名は入力できませんよね。</p>



<p>ファイル名が限定される方は次の項目に飛んでください。</p>



<p></p>



<p>使用するのは<strong><span class="marker-under-blue">「Dir」</span></strong>になります。<br>機能としては<strong><span class="marker-under-blue">フルパスからファイル名を取得する</span></strong>ことができます。</p>



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



<pre class="wp-block-verse"><strong>ファイル名＝Dir(<span class="bold-blue">フルパス</span>)</strong></pre>



<p>ではこちらを活用したプログラムはこのようになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ブックを閉じる()</p><p>Dim FilePath As String, CloseFileName</p><p>FilePath = &#8220;C:\excel\見本.xlsx&#8221;</p><p>Workbooks.Open FilePath</p><p></p><p>&#8216;ここに処理プログラム</p><p></p><p>CloseFileName = Dir(<span class="bold-blue">FilePath</span>)<br>Workbooks(CloseFileName).Close</p><p>End Sub</p></blockquote>



<p>それでは実行してみましょう。<br>「CloseFileName = Dir(FilePath)」の部分の変数「CloseFileName」にファイル名が<br>格納できているか見てみましょう。</p>



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



<p><span class="marker-under">「C:\excel\見本.xlsx」のフルパスからファイル名のみを抽出できています。</span></p>



<p>これでファイル名で「close」するのでエラーが出なくなります。</p>



<p>また、「close」で設定したファイル名が合っていなくても同様のエラーとなります。</p>



<p>例えば閉じたいブック名に半角のスペースが入っただけでも<br>エラーになってしまいます。</p>



<p>正確なファイル名で「close」の指示ができるようにプログラムを作成してください。</p>



<h3 class="wp-block-heading"><span id="toc4">・プログラムが途中で停止、実行中のブックが閉じる</span></h3>



<p>こちらは実行中のプロシージャ（プログラム)のブックを閉じると<br>起こるエラーとなっています。</p>



<p>例えば、「ファイル A」というファイルからVBAを使用して<br>「ファイルB」というファイルを閉じようとします。</p>



<p>しかし誤って「ファイルA」を閉じるように設定すると<br><strong><span class="marker-under-red">プログラムを実行中のファイルAが閉じてしまうため<br>プログラムが途中で停止してしまう問題が発生します</span></strong>。</p>



<p>なので閉じるファイル名が正確か確認してみてください。</p>



<h2 class="wp-block-heading"><span id="toc5">&#x2b1b;︎補足　ブックを閉じる際の確認画面を表示させない方法</span></h2>



<p>ここからは補足になります。<br>編集したブックを「close」で閉じる指令を実行すると<strong><span class="marker-under">「’対象ファイル名’の変更内容を保存じますか？」</span></strong>というメッセージがでます。</p>



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



<p><br>「Workbooks(ファイル名).Save」で１度保存した場合は問題ありませんが、保存しない場合は処理しないといけません。</p>



<p>しかし何度もブックを閉じるプログラムだと毎回確認ボタンを押さないといけないので面倒くさいですよね。<br>そこでブックを閉じる前に<strong><span class="marker-under-blue">「Application.DisplayAlerts = False」</span></strong>を実行することで、確認動作をスルーすることができます。<br>ブックを閉じた後は<strong><span class="marker-under-red">「Application.DisplayAlerts = True」</span></strong>で再度、確認メッセージが出るように設定することをオススメします。</p>



<p>では先ほどのプログラムに織り込んでみましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ブックを閉じる()</p><p>Dim FilePath As String, CloseFileName</p><p>FilePath = &#8220;C:\excel\見本.xlsx&#8221;</p><p>Workbooks.Open FilePath</p><p>&#8216;ここに処理プログラム</p><p>CloseFileName = Dir(FilePath)</p><p><span class="marker-under-blue"><strong>Application.DisplayAlerts = False</strong></span><br>Workbooks(CloseFileName).Close<br><strong><span class="marker-under-red">Application.DisplayAlerts = True</span></strong></p><p>End Sub</p></blockquote>



<p>これで「’対象ファイル名’の変更内容を保存じますか？」の確認メッセージをスルーすることが出来ます。</p>



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



<p>いかがだったでしょうか。<br>ブックを経由してデータを取得したり入力したりする際に用いられる<br>「close」ですが、使用方法を間違えるとエラーが生じてしまいます。</p>



<p>ぜひ今回の記事を参考にして<br>エラーが出ないようなプログラムを作成してみてください。</p>



<p>それでは次回の記事でお会いしましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%82%a8%e3%83%a9%e3%83%bc%e3%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92close%e3%81%a7%e9%96%89%e3%81%98%e3%82%8c%e3%81%aa%e3%81%84%e3%80%8c%e3%82%a4%e3%83%b3/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3380</post-id>	</item>
		<item>
		<title>【マクロVBA】変数や配列の文字・数値の現状が一覧で確認できるローカルウィンドウの表示と活用法</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-30%e3%80%91%e5%a4%89%e6%95%b0%e3%82%84%e9%85%8d%e5%88%97%e3%81%ae%e6%96%87%e5%ad%97%e3%83%bb%e6%95%b0%e5%80%a4%e3%81%ae%e7%8f%be%e7%8a%b6/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e7%259f%25a5%25e8%25ad%2598-30%25e3%2580%2591%25e5%25a4%2589%25e6%2595%25b0%25e3%2582%2584%25e9%2585%258d%25e5%2588%2597%25e3%2581%25ae%25e6%2596%2587%25e5%25ad%2597%25e3%2583%25bb%25e6%2595%25b0%25e5%2580%25a4%25e3%2581%25ae%25e7%258f%25be%25e7%258a%25b6</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-30%e3%80%91%e5%a4%89%e6%95%b0%e3%82%84%e9%85%8d%e5%88%97%e3%81%ae%e6%96%87%e5%ad%97%e3%83%bb%e6%95%b0%e5%80%a4%e3%81%ae%e7%8f%be%e7%8a%b6/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Sun, 27 Mar 2022 07:27:58 +0000</pubDate>
				<category><![CDATA[デバッグ操作]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[確認]]></category>
		<category><![CDATA[デバッグ]]></category>
		<category><![CDATA[ローカルウィンドウ]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=2459</guid>

					<description><![CDATA[前回はイミディエイトウインドウを使用して指定した変数や配列の確認、計算・実行を説明しました。 イミディエイトウインドウについての記事はこちらから☟ 【マクロVBA知識 29】イミディエイトウインドウで変数・配列内の文字数 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>前回はイミディエイトウインドウを使用して指定した変数や配列の確認、計算・実行を説明しました。</p>



<p><br>イミディエイトウインドウについての記事はこちらから☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-29%e3%80%91%e3%82%a4%e3%83%9f%e3%83%87%e3%82%a3%e3%82%a8%e3%82%a4%e3%83%88%e3%82%a6%e3%82%a4%e3%83%b3%e3%83%89%e3%82%a6%e3%81%a7%e5%a4%89/?preview_id=2437&amp;preview_nonce=7b418004da&amp;preview=true&amp;_thumbnail_id=2456">【マクロVBA知識 29】イミディエイトウインドウで変数・配列内の文字数値の確認や計算・変更をする ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>今回は<strong><span class="marker-under">変数や配列が現状、どのような文字・数値なのかを一覧で確認できる<br>ローカルウィンドウについて</span></strong>紹介したいとします。</p>



<p>イミディエイトウインドウでは1つずつの確認しかできませんでしたが<br>ローカルウィンドウを使用することで一目で確認できるのでとても便利です。<br>それでは見ていきましょう。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">■ローカルウィンドウの表示方法について</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">&#x2b1b;︎公式の説明</a></li><li><a href="#toc6" tabindex="0">■まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">■ローカルウィンドウの表示方法について</span></h2>



<p>まず<strong><span class="marker-under">ローカルウィンドウの表示方法</span></strong>について紹介します。<br>ローカルウィンドウは通常は隠れていますが、設定で表示することで<br>初めて使用することができます。</p>



<p>では詳しく見ていきましょう。</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="490" height="598" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-101.png" alt="" class="wp-image-2462" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-101.png 490w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-101-246x300.png 246w" sizes="(max-width: 490px) 100vw, 490px" /></figure>



<p>すると下部にローカルウィンドウが表示されます。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="838" height="234" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-102.png" alt="" class="wp-image-2463" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-102.png 838w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-102-300x84.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-102-768x214.png 768w" sizes="(max-width: 838px) 100vw, 838px" /></figure>



<p>今回はこの部分を活用する内容です。<br>それでは実際に活用してみましょう。</p>



<h2 class="wp-block-heading"><span id="toc2">■ローカルウィンドウを活用する</span></h2>



<h3 class="wp-block-heading"><span id="toc3">・変数を確認する</span></h3>



<p>ではまず変数を確認してみましょう。<br>下図の見本を用意しました。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="489" height="227" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-103.png" alt="" class="wp-image-2464" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-103.png 489w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-103-300x139.png 300w" sizes="(max-width: 489px) 100vw, 489px" /></figure>



<p>B列の数値1とC列の数値2を足した結果をE列に出力します。<br>プログラムはこのようになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 数値1と2の和()</p><p>Dim A As Long</p><p>For A = 3 To 25 Step 1<br>Cells(A, 5) = Cells(A, 2) + Cells(A, 3)<br>Next A</p><p>End Sub</p></blockquote>



<p>ここではFor Nextを用いて変数をAとし繰り返し処理を行います。<br>ではF8を押して1行ずつ実行してみましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="833" height="407" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-104.png" alt="" class="wp-image-2465" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-104.png 833w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-104-300x147.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-104-768x375.png 768w" sizes="(max-width: 833px) 100vw, 833px" /></figure>



<p>ローカルウィンドウを見ると<span class="marker-under-red"><strong>「式の項目には変数A」、「値には現在の変数Aの値」、<br>「型には変数Aの方であるLong」が表示</strong></span>されました。</p>



<p>さらにプログラムを実行していきましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="825" height="454" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-105.png" alt="" class="wp-image-2466" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-105.png 825w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-105-300x165.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-105-768x423.png 768w" sizes="(max-width: 825px) 100vw, 825px" /></figure>



<p>実行に連れて変数が変化していることが確認できますね。<br>変数の内容が一目でわかり、とても便利です。</p>



<h3 class="wp-block-heading"><span id="toc4">・配列内の文字・数値を確認する</span></h3>



<p>先ほどは変数の内容を確認しましたが、配列内でも<br>文字・数値の確認をすることができます。</p>



<p>先ほどの見本を元に進めたいと思います。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="496" height="256" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-106.png" alt="" class="wp-image-2467" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-106.png 496w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-106-300x155.png 300w" sizes="(max-width: 496px) 100vw, 496px" /></figure>



<p>今回はB3からC7を変数Aとして配列内に格納しています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 配列内の数値を確認()</p><p>Dim A As Variant</p><p>A = Range(&#8220;B3:C7&#8221;)</p><p>End Sub</p></blockquote>



<p>では<strong><span class="marker-under-blue">「A = Range(&#8220;B3:C7&#8221;)」</span></strong>までプログラムを実行し、<br>ローカルウィンドウを見てみましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="855" height="166" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-107.png" alt="" class="wp-image-2468" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-107.png 855w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-107-300x58.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-107-768x149.png 768w" sizes="(max-width: 855px) 100vw, 855px" /></figure>



<p>「A」には値は空白になっており、型は「Variant」になってますね。<br>Variantの横には「1to5」と5行データがあることと「1to2」と2列のデータがあることが確認できます。<br>では「A」の横にある「+」を押してみましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="868" height="326" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-108.png" alt="" class="wp-image-2469" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-108.png 868w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-108-300x113.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-108-768x288.png 768w" sizes="(max-width: 868px) 100vw, 868px" /></figure>



<p>A(1)～A(5）まで展開することができました。<br>これは1から5列目の配列を意味します。<br>さらにA(1)を展開した結果が上図になってます。</p>



<p><strong><span class="marker-under-red">A(1,1)には「32」</span></strong>。<strong><span class="marker-under-red">A(1,2)には「14」</span></strong>が表示されています。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="496" height="257" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-109.png" alt="" class="wp-image-2470" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-109.png 496w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-109-300x155.png 300w" sizes="(max-width: 496px) 100vw, 496px" /></figure>



<p>格納したデータ通り値を確認することができました。</p>



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



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



<p><a href="https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/locals-window">ローカル ウィンドウ | Microsoft Learn</a></p>



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



<p>いかがだったでしょうか。<br>変数にいちいちカーソルを合わせて文字・数値を確認していた作業が<br>一目でわかるようになりました。<br>さらに確認しずらい配列内の文字・数値も確認することができるので<br>とても便利な機能ですよね。</p>



<p>ぜひローカルウィンドウを活用してデバック操作を効率よく実行してみてください。<br>それでは次回の記事でお会いしましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-30%e3%80%91%e5%a4%89%e6%95%b0%e3%82%84%e9%85%8d%e5%88%97%e3%81%ae%e6%96%87%e5%ad%97%e3%83%bb%e6%95%b0%e5%80%a4%e3%81%ae%e7%8f%be%e7%8a%b6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2459</post-id>	</item>
		<item>
		<title>【マクロVBA】『 &#8221; 』ダブルクォーテーションの置換!置き換え(Replace)できない原因と対処</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e3%80%8e-%e3%80%8f%e3%83%80%e3%83%96%e3%83%ab%e3%82%af%e3%82%a9%e3%83%bc%e3%83%86%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%ae%e7%bd%ae%e6%8f%9b/?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%25e3%2580%258e-%25e3%2580%258f%25e3%2583%2580%25e3%2583%2596%25e3%2583%25ab%25e3%2582%25af%25e3%2582%25a9%25e3%2583%25bc%25e3%2583%2586%25e3%2583%25bc%25e3%2582%25b7%25e3%2583%25a7%25e3%2583%25b3%25e3%2581%25ae%25e7%25bd%25ae%25e6%258f%259b</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e3%80%8e-%e3%80%8f%e3%83%80%e3%83%96%e3%83%ab%e3%82%af%e3%82%a9%e3%83%bc%e3%83%86%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%ae%e7%bd%ae%e6%8f%9b/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Thu, 17 Mar 2022 12:46:42 +0000</pubDate>
				<category><![CDATA[便利技]]></category>
		<category><![CDATA[マクロVBA応用・便利技]]></category>
		<category><![CDATA[ダブルクォーテーション]]></category>
		<category><![CDATA[”]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[置き換え]]></category>
		<category><![CDATA[Chr(34)]]></category>
		<category><![CDATA[Chr関数]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=2423</guid>

					<description><![CDATA[エクセルのマクロVBAの置換機能については別の記事で紹介しました。置換の記事についてはこちらから☟ 【マクロVBA知識 23】文字・数値の置換と完全一致など様々な置換オプション ► 独学エクセル塾 (dokugakuex [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>エクセルのマクロVBAの置換機能については別の記事で紹介しました。<br>置換の記事についてはこちらから☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-23%e3%80%91%e6%96%87%e5%ad%97%e3%83%bb%e6%95%b0%e5%80%a4%e3%81%ae%e7%bd%ae%e6%8f%9b%e3%81%a8%e5%ae%8c%e5%85%a8%e4%b8%80%e8%87%b4%e3%81%aa/">【マクロVBA知識 23】文字・数値の置換と完全一致など様々な置換オプション ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>今回は<strong><span class="marker-under">「”(ダブルクォーテーション）」の置換方法</span></strong>について紹介します。<br>機会は少ないかもしれませんが、ダブルクォーテーションを置き換えたい場合には必要な知識になります。</p>



<p>数値であればダブルクォーテーションを外さないと計算できません。<br>後程紹介するのですが、通常の置換ではダブルクォーテーションは置き換えることができないので今回の記事で知識を身に着けてください。</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-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">■まずは置換の基礎知識から</a></li><li><a href="#toc2" tabindex="0">■　&#8221; (ダブルクォーテーション)を置き換える</a></li><li><a href="#toc3" tabindex="0">■公式の説明 </a></li><li><a href="#toc4" tabindex="0">■まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">■まずは置換の基礎知識から</span></h2>



<p>本記事を紹介する前にまずは置換の機能を見ていきましょう。<br>詳しくは紹介しないので詳しくみたい方は冒頭で紹介した記事をご参照ください。</p>



<p>では見本を用意しました。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="340" height="214" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-79.png" alt="" class="wp-image-2424" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-79.png 340w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-79-300x189.png 300w" sizes="(max-width: 340px) 100vw, 340px" /></figure>



<p><span class="bold-green">「B3」</span>に<span class="bold-red">「A」</span>という文字があります。<br>こちらを<span class="bold-blue">「B」</span>に置き換えてみましょう。</p>



<p>まずは悪い例を見てみましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub AからBへ()</p><p>Range(&#8220;<span class="bold-green">B3</span>&#8220;).Replace What:=<span class="bold-red">A</span>, Replacement:=<span class="bold-blue">B</span></p><p>End Sub</p></blockquote>



<p>内容は簡単です。<br>B3のセルをAからBに変えるといったプログラムになっています。</p>



<p>しかし実行すると下図のような結果になります。</p>



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



<p>置き換えできていませんね。</p>



<p>置き換えできない原因として、「A」「B」と打ち込んだ<br><strong><span class="marker-under-red">英文字は変数として処理されるため「A」または「B」という文字で判別されません</span></strong>。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="558" height="128" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-81.png" alt="" class="wp-image-2426" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-81.png 558w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-81-300x69.png 300w" sizes="(max-width: 558px) 100vw, 558px" /></figure>



<p>変数の記事はこちらから☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90vba%e7%9f%a5%e8%ad%98-6%e3%80%91%e5%a4%89%e6%95%b0%e3%81%a8%e3%81%af%e5%a4%89%e6%95%b0%e3%81%ae%e4%b8%80%e8%a6%a7%e3%81%a8%e6%84%8f%e5%91%b3%e3%83%bb%e5%a4%89%e6%95%b0%e3%81%ae%e5%ae%a3/">【VBA知識 6】変数とは?変数の一覧と意味・変数の宣言をする ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>では正しいプログラムを紹介します。<br>ここで今回の主役、<strong><span class="marker-under-blue">「&#8221;（ダブルクォーテーション）」を使用します</span></strong>。<br>使用方法は<span class="bold-red">「A」</span>であれば<span class="bold-red">「&#8221;A&#8221;」</span>と英字を<strong><span class="marker-under-blue">ダブルクォーテーションで囲います</span></strong>。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub AからBへ()</p><p>Range(&#8220;<span class="bold-green">B3</span>&#8220;).Replace What:=<span class="bold-red">&#8220;A&#8221;</span>, Replacement:=<span class="bold-blue">&#8220;B&#8221;</span></p><p>End Sub</p></blockquote>



<p>実行した結果はこちらです。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="344" height="213" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-82.png" alt="" class="wp-image-2427" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-82.png 344w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-82-300x186.png 300w" sizes="(max-width: 344px) 100vw, 344px" /></figure>



<p><span class="bold-red">「A」</span>から<span class="bold-blue">「B」</span>へ置き換えることができました。<br>つまり<strong><span class="marker-under-blue">「&#8221;（ダブルクォーテーション)」で英字を囲むことで文字と認識され<br>置き換えることができる仕組み</span></strong>です。</p>



<p>置き換えの基礎知識とダブルクォーテーションの機能は理解できましたね。<br>では本題に移りたいと思います。</p>



<h2 class="wp-block-heading"><span id="toc2">■　&#8221; (ダブルクォーテーション)を置き換える</span></h2>



<p>ではダブルクォーテーションを置き換えてみましょう。<br>再度見本を用意しました。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="670" height="311" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-83.png" alt="" class="wp-image-2428" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-83.png 670w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-83-300x139.png 300w" sizes="(max-width: 670px) 100vw, 670px" /></figure>



<p>合計を求める「E3」は数値1と数値2を足している数式を入れているのですが<br><strong><span class="marker-under-red">数値1と数値2にダブルクォーテーションがついているので<br>文字として処理され、計算ができない状態</span></strong>です。</p>



<p>では「&#8221;（ダブルクォーテーション）」を置き換えてみましょう。</p>



<p>何も知らなけれは下記のようなプログラムを作成すると思います。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><span class="marker-under">①Range(&#8220;B3：C3&#8243;).Replace What:=&#8221;, Replacement:=&#8221;&#8221;</span></strong><br><strong><span class="marker-under-blue">②Range(&#8220;B3：C3&#8243;).Replace What:=&#8221;&#8221;&#8221;, Replacement:=&#8221;&#8221;</span></strong></p></blockquote>



<p><strong><span class="marker-under">①は「&#8221;」を空白にしたいので「&#8221;&#8221;」へ置き換え</span></strong><br><span class="marker-under-blue"><strong>②は「&#8221;」を文字として置き換えたいのでダブルクォーテーションで囲って<br>　 「&#8221;&#8221;&#8221;」とし、置換先を「&#8221;&#8221;」にする。</strong></span></p>



<p>しかし実行した結果はこのようになります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="525" height="287" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-84.png" alt="" class="wp-image-2429" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-84.png 525w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-84-300x164.png 300w" sizes="(max-width: 525px) 100vw, 525px" /></figure>



<p>コンパイルエラー：引数は省略できません。<br>というエラーが発生しました。</p>



<p>つまり置換元にダブルクォーテーションを入力しても置き換えることができません。</p>



<p>ここで使用するのが<strong><span class="marker-under-blue">「Chr（34)」</span></strong>です。<br>なんだこれ？と思われた方もいると思いますが<br><strong><span class="marker-under-blue">Chr関数を応用した機能</span></strong>になります。</p>



<p><strong>Chr関数の34</strong>は<strong>「&#8221;（ダブルクォーテーション)」</strong>にあたります。</p>



<p>つまり「<strong><span class="marker-under-blue"> &#8220;＝Chr(34）</span></strong>」ということですね。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ダブルクォーテーション置換()</p><p>Range(&#8220;B3：C3&#8221;).Replace What:=<span class="bold-red">Chr(34)</span>, Replacement:=<span class="bold-green">&#8220;&#8221;</span></p><p>End Sub</p></blockquote>



<p>[<span class="bold-red">ダブルクォーテーション=Chr(34)]</span>を<span class="bold-blue">[空白＝&#8221;&#8221;]</span>に置き換えるといった意味です。</p>



<p>実行した結果はこのようになります。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="161" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-85-1024x161.png" alt="" class="wp-image-2430" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-85-1024x161.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-85-300x47.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-85-768x121.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-85.png 1351w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>無事<strong><span class="marker-under-blue">ダブルクォーテーションを空白にすることができました</span></strong>。<br>Chr関数は面白い関数ですね。</p>



<p></p>



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



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



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



<p><a href="https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/chr-function?msclkid=8c51b77db02411ecb54cffac1d951f37">Chr 関数 (Visual Basic for Applications) | Microsoft Docs</a></p>



<p></p>



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



<p>いかがだったでしょうか。<br>ダブルクォーテーションは文字列として判別するために用いますが<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%e3%80%8e-%e3%80%8f%e3%83%80%e3%83%96%e3%83%ab%e3%82%af%e3%82%a9%e3%83%bc%e3%83%86%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e3%81%ae%e7%bd%ae%e6%8f%9b/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2423</post-id>	</item>
		<item>
		<title>【マクロ】指定した位置まで実行する!ブレークポイント・カーソル行の前まで実行の設定と解除方法</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-28%e3%80%91%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e4%bd%8d%e7%bd%ae%e3%81%be%e3%81%a7%e5%ae%9f%e8%a1%8c%e3%81%99%e3%82%8b%e3%83%96%e3%83%ac/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e7%259f%25a5%25e8%25ad%2598-28%25e3%2580%2591%25e6%258c%2587%25e5%25ae%259a%25e3%2581%2597%25e3%2581%259f%25e4%25bd%258d%25e7%25bd%25ae%25e3%2581%25be%25e3%2581%25a7%25e5%25ae%259f%25e8%25a1%258c%25e3%2581%2599%25e3%2582%258b%25e3%2583%2596%25e3%2583%25ac</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-28%e3%80%91%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e4%bd%8d%e7%bd%ae%e3%81%be%e3%81%a7%e5%ae%9f%e8%a1%8c%e3%81%99%e3%82%8b%e3%83%96%e3%83%ac/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Mon, 07 Mar 2022 13:04:55 +0000</pubDate>
				<category><![CDATA[デバッグ操作]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[デバッグ]]></category>
		<category><![CDATA[ブレークポイント]]></category>
		<category><![CDATA[カーソル行の前まで実行]]></category>
		<category><![CDATA[VBA]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=2352</guid>

					<description><![CDATA[マクロVBAのプログラムの実行については他の記事で説明しました。プログラムの実行についての記事はこちらから☟ 【マクロVBA知識 27】ステップイン・オバー・アウトで動作確認（デバッグ）を行う ► 独学エクセル塾 (do [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>マクロVBAのプログラムの実行については他の記事で説明しました。<br>プログラムの実行についての記事はこちらから☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-27%e3%80%91%e3%82%b9%e3%83%86%e3%83%83%e3%83%97%e3%82%a4%e3%83%b3%e3%83%bb%e3%82%aa%e3%83%90%e3%83%bc%e3%83%bb%e3%82%a2%e3%82%a6%e3%83%88/?preview_id=2337&amp;preview_nonce=03ad05f935&amp;preview=true&amp;_thumbnail_id=2350">【マクロVBA知識 27】ステップイン・オバー・アウトで動作確認（デバッグ）を行う ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>動作確認を行う際にはF8を使用して1行ずつ実行する方法もありますが<br>プログラムが長くなれば手間がかかる上、確認が済んでいるプログラムも1行ずつ確認しないといけません。</p>



<p>そこで今回は<strong><span class="marker-under">指定した位置までプログラムを実行する方法</span></strong>について紹介したいと思います。<br>今回の記事を身に着ければプログラムの動作確認が楽になりますので是非参考にしてみてください。</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-12" checked><label class="toc-title" for="toc-checkbox-12">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">■見本のプログラムを紹介</a></li><li><a href="#toc2" tabindex="0">■カーソル行の前まで実行する方法について</a></li><li><a href="#toc3" tabindex="0">■ブレークポイントを活用する</a></li><li><a href="#toc4" tabindex="0">&#x2b1b;︎公式の説明</a></li><li><a href="#toc5" tabindex="0">■まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">■見本のプログラムを紹介</span></h2>



<p>まず、機能をプログラムを用いて説明するため見本のプログラムを準備しました。<br>内容は下図の見本を作成してみました。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-28.png" alt="" class="wp-image-2353" width="389" height="350" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-28.png 483w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-28-300x270.png 300w" sizes="(max-width: 389px) 100vw, 389px" /></figure>



<p>行いたい作業として、単価と購入数が入力されてある場合に<br>E列の総額を計算するプログラムを作成したいと思います。</p>



<p>作成したプログラムは下記の通りです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 総額の計算()</p><p>Dim Cycle As Variant</p><p>For Cycle = 4 To 16 Step 1</p><p>If Cells(Cycle, 3) &lt;&gt; &#8220;&#8221; Then<br>Cells(Cycle, 5) = Cells(Cycle, 3) * Cells(Cycle, 4)<br>End If</p><p>Next Cycle</p><p>End Sub</p></blockquote>



<p>今回は実行についての記事なので詳しくは説明しませんが、<br>「For Next」 と「If」を使用した簡単なプログラムです。</p>



<p>「For Next」 と「If」の記事はこちらから☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90vba%e7%9f%a5%e8%ad%98-7%e3%80%91fornext%e3%81%a7%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e6%95%b0%e5%80%a4%e3%81%a7%e7%b9%b0%e3%82%8a%e8%bf%94%e3%81%97%e3%83%bb%e3%83%ab%e3%83%bc/?preview_id=453&amp;preview_nonce=21fd6b56f7&amp;preview=true&amp;_thumbnail_id=457">【VBA知識 7】FOR…NEXTで指定した数値で繰り返し・ループ動作をする。 ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p><a href="https://dokugakuexcel.com/%e3%80%90vba%e7%9f%a5%e8%ad%98-9%e3%80%91if-then%e3%81%a7%e6%9d%a1%e4%bb%b6%e5%88%86%e5%b2%90%e3%83%bb%e5%88%a4%e5%88%a5%e3%82%92%e3%81%99%e3%82%8b%e2%97%8b%e2%97%8b%e3%81%aa%e3%82%89/?preview_id=466&amp;preview_nonce=ed55e67214&amp;preview=true&amp;_thumbnail_id=470">【マクロ・VBA知識 9】If …Thenで条件分岐・判別をする(○○なら△△) ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>では実行した結果を見てみましょう。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-29.png" alt="" class="wp-image-2354" width="386" height="348" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-29.png 593w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-29-300x270.png 300w" sizes="(max-width: 386px) 100vw, 386px" /></figure>



<p>計画通り、機能してくれています。</p>



<h2 class="wp-block-heading"><span id="toc2">■カーソル行の前まで実行する方法について</span></h2>



<p>まずは<strong><span class="marker-under">カーソル行の前まで実行する方法</span></strong>について紹介したいと思います。<br>こちらの方法は動作確認が序盤で<strong><span class="marker-under">停止したい位置が毎回変化する場合に便利</span></strong>です。</p>



<p>再度、プログラムを図でみてみましょう。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-30.png" alt="" class="wp-image-2355" width="520" height="256" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-30.png 701w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-30-300x148.png 300w" sizes="(max-width: 520px) 100vw, 520px" /></figure>



<p>このプログラムのメインの機能は単価（C列）が空白でない場合、<br>単価（C列）と購入数(D列)をかける「Cells(Cycle, 5) = Cells(Cycle, 3) * Cells(Cycle, 4)」<br>の部分ですね。</p>



<p>しかし単価（C列）が空白な場合は対象の部分は飛ばされるので<br>何度も「F8」をおして実行しないといけません。<br>今回の見本は行数が少ないので問題ないですが、行数が多い場合は大変です。</p>



<p>では<strong><span class="marker-under-blue">「Cells(Cycle, 5) = Cells(Cycle, 3) * Cells(Cycle, 4)」の部分までプログラムを飛ばし、<br>対象のプログラムまで来たらプログラムを停止させてみましょう</span>。</strong></p>



<p>まず実行したいプログラムを選択し、「F8」を1回以上押して実行します。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-31.png" alt="" class="wp-image-2356" width="533" height="253" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-31.png 688w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-31-300x143.png 300w" sizes="(max-width: 533px) 100vw, 533px" /></figure>



<p>そして<strong><span class="marker-under-blue">止めたい行の部分で右クリック</span></strong>を押します。<br>ここでは「Cells(Cycle, 5) = Cells(Cycle, 3) * Cells(Cycle, 4)」の部分ですね。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-32.png" alt="" class="wp-image-2357" width="556" height="354" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-32-300x192.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-32-768x491.png 768w" sizes="(max-width: 556px) 100vw, 556px" /></figure>



<p>するとメニューに<strong><span class="marker-under-red">「カーソル行の前まで実行」</span></strong>という項目があります。<br>ではこちらを押してみましょう。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-33.png" alt="" class="wp-image-2358" width="521" height="244" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-33.png 693w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-33-300x140.png 300w" sizes="(max-width: 521px) 100vw, 521px" /></figure>



<p><strong><span class="marker-under-red">選択した行まで実行し、対象行で止まってくれました</span></strong>。<br>繰り返しの変数「Cycle」も4からスタートですがすでに「7」になってます。<br>つまり、「4～6」は空白で指定行が飛ばされたので、条件にあれはまる「7」で止まってくれました。</p>



<p>とても便利な機能ですね。</p>



<h2 class="wp-block-heading"><span id="toc3">■ブレークポイントを活用する</span></h2>



<p>では次の手法を見てみましょう。<br>使用する機能は<strong><span class="marker-under">「ブレークポイント」</span></strong>と呼ばれるものです。</p>



<p>こちらの手法は<strong><span class="marker-under">止めたい位置があらかじめ決まっている場合は<br>とても便利な機能</span></strong>です。</p>



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



<p>プログラムは先ほどと同様のプログラムを使用し、<br>計算結果を書き込む位置で止めたいと思います。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-34.png" alt="" class="wp-image-2359" width="458" height="225" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-34.png 701w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-34-300x148.png 300w" sizes="(max-width: 458px) 100vw, 458px" /></figure>



<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/03/image-35.png" alt="" class="wp-image-2360" width="502" height="232" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-35.png 749w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-35-300x139.png 300w" sizes="(max-width: 502px) 100vw, 502px" /></figure>



<p>この状態で<strong><span class="marker-under-red">「F9」</span></strong>を押してみましょう。<br>すると下図のように<strong><span class="marker-under-red">止めたい行の左に赤い印と対象行に色</span></strong>がつきました。<br>こちらが<strong><span class="marker-under">「ブレークポイント」</span></strong>と呼ばれる機能になります。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-36.png" alt="" class="wp-image-2361" width="505" height="238" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-36.png 696w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-36-300x141.png 300w" sizes="(max-width: 505px) 100vw, 505px" /></figure>



<p>ちなみにこちらの「ブレークポイント」は「F9」を押す以外にも設定することができます。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:100%">
<p>その他の方法としては<br><strong><span class="marker-under-red">「ブレークポイント」の設定したい行の左のスペースを左クリック</span></strong>します。</p>
</div>
</div>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-37.png" alt="" class="wp-image-2362" width="670" height="260" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-37.png 861w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-37-300x117.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-37-768x299.png 768w" sizes="(max-width: 670px) 100vw, 670px" /></figure>



<p>こちらはワンクリックで設定できるのでとても便利ですね。</p>



<p>もう一つの方法として<br><strong><span class="marker-under-red">「ブレークポイント」</span></strong>を設定したい行を選択して<strong><span class="marker-under-red">「デバッグ」</span></strong>から<strong><span class="marker-under-red">「ブレークポイントの設定/解除」</span></strong>を<br>押しても設定可能です。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-38.png" alt="" class="wp-image-2363" width="478" height="360" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-38.png 710w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-38-300x226.png 300w" sizes="(max-width: 478px) 100vw, 478px" /></figure>



<p>では実際に「ブレークポイント」を活用してみましょう。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-39.png" alt="" class="wp-image-2364" width="394" height="253" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-39.png 488w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-39-300x193.png 300w" sizes="(max-width: 394px) 100vw, 394px" /></figure>



<p>上記の状態で全実行の「Ｆ5」を押してみましょう。<br>結果はこのようになります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="426" height="314" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-40.png" alt="" class="wp-image-2365" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-40.png 426w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-40-300x221.png 300w" sizes="(max-width: 426px) 100vw, 426px" /></figure>



<p><strong><span class="marker-under-red">「ブレークポイント」の位置で止まってくれました</span></strong>。<br>繰り返し動作で指定の場所の処理を確認したい時など<br>止めたい位置がすでに判明している場合はとても便利な機能ですね。</p>



<p></p>



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



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



<p><a href="https://learn.microsoft.com/ja-jp/office/vba/language/how-to/set-and-clear-a-breakpoint">ブレークポイントの設定とクリア (VBA) | Microsoft Learn</a></p>



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



<p>いかがだったでしょうか。<br>動作確認（デバッグ）はプログラムが長ければ長いほど大変な作業です。</p>



<p>確認が終わっている個所を飛ばして実行したり、<br>ブレークポイントを活用して止めたい個所を止めたりすることで<br>動作確認（デバッグ）を効率よく実行してみてください。</p>



<p>それでは次回の記事でお会いしましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-28%e3%80%91%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e4%bd%8d%e7%bd%ae%e3%81%be%e3%81%a7%e5%ae%9f%e8%a1%8c%e3%81%99%e3%82%8b%e3%83%96%e3%83%ac/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2352</post-id>	</item>
		<item>
		<title>【マクロVBA】複数行のソースコードを1行・小数行にまとめて短縮する!:(コロン)の活用について</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-26%e3%80%91%e8%a4%87%e6%95%b0%e8%a1%8c%e3%81%ae%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%921%e8%a1%8c%e3%83%bb%e5%b0%8f%e6%95%b0/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e7%259f%25a5%25e8%25ad%2598-26%25e3%2580%2591%25e8%25a4%2587%25e6%2595%25b0%25e8%25a1%258c%25e3%2581%25ae%25e3%2583%2597%25e3%2583%25ad%25e3%2582%25b0%25e3%2583%25a9%25e3%2583%25a0%25e3%2582%25921%25e8%25a1%258c%25e3%2583%25bb%25e5%25b0%258f%25e6%2595%25b0</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-26%e3%80%91%e8%a4%87%e6%95%b0%e8%a1%8c%e3%81%ae%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%921%e8%a1%8c%e3%83%bb%e5%b0%8f%e6%95%b0/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Tue, 01 Mar 2022 13:49:29 +0000</pubDate>
				<category><![CDATA[ソースコード]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[まとめる]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[：]]></category>
		<category><![CDATA[:]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=2320</guid>

					<description><![CDATA[前回の記事では長くなったプログラムを改行・複数の行に分ける方法について紹介しました。前回の記事はこちらから☟ 【マクロVBA知識 25】長くなったプログラムを改行・複数の行に分ける方法 ► 独学エクセル塾 (dokuga [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>前回の記事では長くなったプログラムを改行・複数の行に分ける方法について紹介しました。<br>前回の記事はこちらから☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-25%e3%80%91%e9%95%b7%e3%81%8f%e3%81%aa%e3%81%a3%e3%81%9f%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%92%e6%94%b9%e8%a1%8c%e3%83%bb/?preview_id=2308&amp;preview_nonce=29071d402c&amp;preview=true&amp;_thumbnail_id=2318">【マクロVBA知識 25】長くなったプログラムを改行・複数の行に分ける方法 ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>今回は前回の内容の対称となる<strong><span class="marker-under">複数行のプログラムを1行・小数行にまとめる方法</span></strong>について紹介します。<br>Select Caseなどを使用する中で条件が単純な場合は文字数が少ないのに対し<br>必要となる行は増えてしまいます。</p>



<p>そこで今回は複数に分かれたプログラムを1行・小数行にまとめて<br>コンパクトに管理しやすいプログラムを作成する方法について紹介したいと思います。</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-14" checked><label class="toc-title" for="toc-checkbox-14">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">■見本のプログラムを紹介</a></li><li><a href="#toc2" tabindex="0">■プログラムを1行・小数行にまとめる</a></li><li><a href="#toc3" tabindex="0">■よくあるエラーと対処法について</a><ol><li><a href="#toc4" tabindex="0">・コンパイルエラー：End If に対応するIf ブロックがありません/行頭のみ許されるステートメントです</a></li></ol></li><li><a href="#toc5" tabindex="0">&#x2b1b;︎公式の説明</a></li><li><a href="#toc6" tabindex="0">■まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">■見本のプログラムを紹介</span></h2>



<p>まず、内容を紹介するにあたりイメージしやすいように<br>見本の作業とプログラムを用意しました。下図をご覧ください。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="655" height="130" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-10.png" alt="" class="wp-image-2322" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-10.png 655w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-10-300x60.png 300w" sizes="(max-width: 655px) 100vw, 655px" /></figure>



<p>内容としてD3にグーチョキパーを入力すると勝敗がF3に出力されるようにしたいと思います。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="523" height="292" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-11.png" alt="" class="wp-image-2323" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-11.png 523w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-11-300x167.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-11-120x68.png 120w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-11-160x90.png 160w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-11-320x180.png 320w" sizes="(max-width: 523px) 100vw, 523px" /></figure>



<p>ではプログラムを作成してみましょう。<br>結果は下記の通りです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub じゃんけんの勝敗()</p><p>Dim A As String<br>A = Cells(3, 4) &#8216;自分の出した手</p><p>Select Case A<br>Case Is = &#8220;グー&#8221;<br>Cells(3, 6) = &#8220;あいこ&#8221;<br>Case Is = &#8220;チョキ&#8221;<br>Cells(3, 6) = &#8220;負け&#8221;<br>Case Is = &#8220;パー&#8221;<br>Cells(3, 6) = &#8220;勝ち&#8221;<br>End Select</p><p>End Sub</p></blockquote>



<p>上記プログラムでは<em><span class="marker-under-red">Ｃaseが複数あり、行数が増えてしまっています</span></em>。</p>



<p>ではこちらを小数行にまとめていきましょう。</p>



<h2 class="wp-block-heading"><span id="toc2">■プログラムを1行・小数行にまとめる</span></h2>



<p>では先ほどのプログラムを実際の図で確認してみましょう。</p>



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



<p>Caseが多く、行数が増えてしまいます。<br>ここで使用するのが<strong><span class="marker-under-blue">「：（コロン）」</span></strong>です。</p>



<p>使用方法は簡単です。<strong><span class="marker-under-blue">1行目と2行目を1つにまとめ、間に「：」を付けるだけ</span></strong>です。<br>例えば<span class="bold-red">A行</span>と<span class="bold-blue">B行</span>があったとすると「<span class="bold-red">A行</span>：<span class="bold-blue">B行</span>」という配置で1行にすることができます。</p>



<p>では先ほどのプログラムを1つのまとめてみましょう。<br>結果はこのようになりました。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub コロンを使用したじゃんけんの勝敗()</p><p>Dim A As String<br>A = Cells(3, 4) &#8216;自分の出した手</p><p>Select Case A: Case Is = &#8220;グー&#8221;: Cells(3, 6) = &#8220;あいこ&#8221;: Case Is = &#8220;チョキ&#8221;: Cells(3, 6) = &#8220;負け&#8221;: Case Is = &#8220;パー&#8221;: Cells(3, 6) = &#8220;勝ち&#8221;: End Select</p><p>End Sub</p></blockquote>



<p>実際の図で見てみましょう。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="112" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-13-1024x112.png" alt="" class="wp-image-2326" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-13-1024x112.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-13-300x33.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-13-768x84.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-13-1536x168.png 1536w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-13.png 1760w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>いかがでしょうか。<br><em><span class="marker-under"><strong>複</strong></span></em><span class="marker-under"><strong>数行のプログラムを1行にまとめることができました</strong></span>。<br>マクロVBAの機能上、行を分けないといけないもので文字数が少ない場合は<br>「：」を使って1行・小数行にまとめてみてください。</p>



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



<p>ここからは本内容で発生しやすいエラーと対処法について紹介します。</p>



<h3 class="wp-block-heading"><span id="toc4">・コンパイルエラー：End If に対応するIf ブロックがありません/行頭のみ許されるステートメントです</span></h3>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="271" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-14-1024x271.png" alt="" class="wp-image-2327" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-14-1024x271.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-14-300x79.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-14-768x203.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-14.png 1126w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>こちらを使用した方は<strong><span class="marker-under-red">If Thenで「：（コロン）」を使用した</span></strong>のでないでしょうか。<br>再度見本を見てみましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="655" height="129" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-15.png" alt="" class="wp-image-2328" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-15.png 655w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-15-300x59.png 300w" sizes="(max-width: 655px) 100vw, 655px" /></figure>



<p>内容としてD3にグーチョキパーを入力すると勝敗がF3に出力されるようにしたいと思います。<br>今回はIf Ｔhenで作成してみました。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub IFを使用したじゃんけんの勝敗()</p><p>Dim A As String<br>A = Cells(3, 4) &#8216;自分の出した手</p><p>If A = &#8220;グー&#8221; Then<br>Cells(3, 6) = &#8220;あいこ&#8221;<br>ElseIf A = &#8220;チョキ&#8221; Then<br>Cells(3, 6) = &#8220;負け&#8221;<br>ElseIf A = &#8220;パー&#8221; Then<br>Cells(3, 6) = &#8220;勝ち&#8221;<br>End If</p><p>End Sub</p></blockquote>



<p>このプログラムでは正常に機能します。<br>ここで「：（コロン）」を使用して行を短縮してみましょう。</p>



<p>結果はこのようになります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1009" height="222" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-16.png" alt="" class="wp-image-2329" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-16.png 1009w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-16-300x66.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-16-768x169.png 768w" sizes="(max-width: 1009px) 100vw, 1009px" /></figure>



<p><strong><span class="marker-under-red">文字が赤くなり、エラーが出てしまいました</span></strong>。</p>



<p>結果として<strong><span class="marker-under-red">「：（コロン）」はIf Thenで使用することはできなくなっています</span></strong>。<br>処理の方は使用できるのですがThenとそれ以降の処理は行を分ける必要があります。</p>



<p>Select Ｃaseは見本の通り使用できるので<br>こちらを使用するのも手ですね。</p>



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



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



<p><a href="https://learn.microsoft.com/ja-jp/office/vba/library-reference/concepts/getting-started-with-vba-in-office">Office VBA の基礎知識 | Microsoft Learn</a></p>



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



<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%e7%9f%a5%e8%ad%98-26%e3%80%91%e8%a4%87%e6%95%b0%e8%a1%8c%e3%81%ae%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%921%e8%a1%8c%e3%83%bb%e5%b0%8f%e6%95%b0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2320</post-id>	</item>
		<item>
		<title>【マクロVBA】１行の長いソースコードを改行・複数の行に分ける!アンダーバーの活用法について</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-25%e3%80%91%e9%95%b7%e3%81%8f%e3%81%aa%e3%81%a3%e3%81%9f%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%92%e6%94%b9%e8%a1%8c%e3%83%bb/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e7%259f%25a5%25e8%25ad%2598-25%25e3%2580%2591%25e9%2595%25b7%25e3%2581%258f%25e3%2581%25aa%25e3%2581%25a3%25e3%2581%259f%25e3%2583%2597%25e3%2583%25ad%25e3%2582%25b0%25e3%2583%25a9%25e3%2583%25a0%25e3%2582%2592%25e6%2594%25b9%25e8%25a1%258c%25e3%2583%25bb</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-25%e3%80%91%e9%95%b7%e3%81%8f%e3%81%aa%e3%81%a3%e3%81%9f%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%92%e6%94%b9%e8%a1%8c%e3%83%bb/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Tue, 01 Mar 2022 13:28:39 +0000</pubDate>
				<category><![CDATA[ソースコード]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[改行]]></category>
		<category><![CDATA[複数行]]></category>
		<category><![CDATA[＿]]></category>
		<category><![CDATA[_]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=2308</guid>

					<description><![CDATA[プログラムの作成を進めていく中でプログラムが長くなってしまうことはないでしょうか。プログラムが長くなれば入力や確認で手間が増えてしまいます。 そこで今回はプログラムを改行・次の行にわけることでコンパクトに管理しやすいプロ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>プログラムの作成を進めていく中でプログラムが長くなってしまうことはないでしょうか。<br>プログラムが長くなれば入力や確認で手間が増えてしまいます。</p>



<p>そこで今回は<strong><span class="marker-under">プログラムを改行・次の行にわけることで<br>コンパクトに管理しやすいプログラムを作成する方法について紹介したいと思います</span></strong>。</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-16" checked><label class="toc-title" for="toc-checkbox-16">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">■見本のプログラムを紹介</a></li><li><a href="#toc2" tabindex="0">■プログラムを改行・次の行に分ける</a></li><li><a href="#toc3" tabindex="0">■よくあるエラーと対処法について</a><ol><li><a href="#toc4" tabindex="0">・コンパイルエラー　修正候補：行番号または行ラベルまたはステートメントまたはステートメントの最後</a></li></ol></li><li><a href="#toc5" tabindex="0">&#x2b1b;︎公式の説明</a></li><li><a href="#toc6" tabindex="0">■まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">■見本のプログラムを紹介</span></h2>



<p>まず、内容を紹介するにあたりイメージしやすいように<br>見本の作業とプログラムを用意しました。下図をご覧ください。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="665" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-1-1024x665.png" alt="" class="wp-image-2309" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-1-1024x665.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-1-300x195.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-1-768x499.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-1.png 1309w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>内容としてB4からC15の範囲をコピーして<br>E4を先頭に貼り付けを行います。</p>



<p>さらにその中の条件として</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><br>①値のみ貼り付け<br>②貼り付けによる計算は行わない<br>③列と行を入れ替える</strong></p></blockquote>



<p><br>の条件を元に貼り付けを行いたいと思います。</p>



<h2 class="wp-block-heading"><span id="toc2">■プログラムを改行・次の行に分ける</span></h2>



<p>こちらを満たすプログラムを作成してみました。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub データのコピーペースト()</p><p>Range(&#8220;B4:C15&#8221;).Copy<br>Range(&#8220;E4&#8221;).PasteSpecial xlPasteValues, xlPasteSpecialOperationNone, Transpose:=True</p><p>End Sub</p></blockquote>



<p>貼り付けの条件が多い為<strong><span class="marker-under-red">プログラムは長くなってしまい、<br>モニターを分割して表示していると1部隠れてしまいます</span></strong>。</p>



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



<p>これではプログラムの入力もしにくく、確認作業（デバッグ）時も手間がかかってしまいます。</p>



<p>では悪い例でEnterキーで改行してみましょう。<br>結果はこのようになります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="436" height="241" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-3.png" alt="" class="wp-image-2311" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-3.png 436w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-3-300x166.png 300w" sizes="(max-width: 436px) 100vw, 436px" /></figure>



<p><strong><span class="marker-under-red">式が成り立たずに「コンパイルエラー」が発生</span></strong>してしまいました。<br>さらにプログラムも赤文字になり、エラー個所であることがわかります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="659" height="223" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-4.png" alt="" class="wp-image-2312" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-4.png 659w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-4-300x102.png 300w" sizes="(max-width: 659px) 100vw, 659px" /></figure>



<p>ここで本題の対策です。<br>使用するのは<strong><span class="marker-under">「　_(スペース＆アンダーバー）」</span></strong>です。</p>



<p>使用方法は改行したい位置で<strong><span class="marker-under">「&#8221;　_&#8221;」</span></strong>を入力します。<br>では見本のプログラムに組み込んでみましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub データのコピーペースト()</p><p>Range(&#8220;B4:C15&#8221;).Copy<br>Range(&#8220;E4&#8221;).PasteSpecial xlPasteValues _<br>, xlPasteSpecialOperationNone _<br>, Transpose:=True</p><p>End Sub</p></blockquote>



<p>長いプログラムを複数行にすることができました。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="661" height="224" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-5.png" alt="" class="wp-image-2313" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-5.png 661w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-5-300x102.png 300w" sizes="(max-width: 661px) 100vw, 661px" /></figure>



<p>実際に打ち込んでもエラーになりませんね。<br>もちろん、この状態で実行することができます。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-6.png" alt="" class="wp-image-2314" width="769" height="241" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-6.png 931w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-6-300x94.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-6-768x241.png 768w" sizes="(max-width: 769px) 100vw, 769px" /></figure>



<p>注意点として「&#8217;（アポストロフィー)」を用いてコメントを入力できるのは<br>最終行のみです。途中で入力してもエラーになってしまいます。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="791" height="209" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-7.png" alt="" class="wp-image-2315" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-7.png 791w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-7-300x79.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-7-768x203.png 768w" sizes="(max-width: 791px) 100vw, 791px" /></figure>



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



<p>ここからは本内容で発生しやすいエラーと対処法について紹介します。</p>



<h3 class="wp-block-heading"><span id="toc4">・コンパイルエラー　修正候補：行番号または行ラベルまたはステートメントまたはステートメントの最後</span></h3>



<figure class="wp-block-image size-full"><img decoding="async" width="786" height="308" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-8.png" alt="" class="wp-image-2316" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-8.png 786w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-8-300x118.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-8-768x301.png 768w" sizes="(max-width: 786px) 100vw, 786px" /></figure>



<p>こちらのエラーは<strong><span class="marker-under-red">「_(アンダーバー）」の前に「　（スペース）」がない</span></strong>ことが考えられます。<br>下図をご覧ください。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="666" height="374" src="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-9.png" alt="" class="wp-image-2317" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/03/image-9.png 666w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-9-300x168.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-9-120x68.png 120w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-9-160x90.png 160w, https://dokugakuexcel.com/wp-content/uploads/2022/03/image-9-320x180.png 320w" sizes="(max-width: 666px) 100vw, 666px" /></figure>



<p>正常なプログラムは「　<em>(スペース＆アンダーバー）」がセットで入力されていますが エラーが発生するプログラムは「</em>(アンダーバー）」のみとなっています。</p>



<p>こちらの異常が発生した際は<strong><span class="marker-under-blue">「　_(スペース＆アンダーバー）」のセットをご確認下さい</span></strong></p>



<p></p>



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



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



<p><a href="https://learn.microsoft.com/ja-jp/office/vba/api/overview/excel">Excel Visual Basic for Applications (VBA) リファレンス | Microsoft Learn</a></p>



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



<p>いかがだったでしょうか。<br>今回の見本はあまり長くありませんでしたが<br>使用する機能によっては、とても長くなるので今回の内容を参考にしてみてください。</p>



<p>Ifで条件分岐する際にAndを用いて複数使用する場合は長くなるので活用できますね。<br>次回は本内容の対称となる「プログラムを1行にまとめる方法」について紹介したいと思います。</p>



<p>次回の記事はこちらから☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-26%e3%80%91%e8%a4%87%e6%95%b0%e8%a1%8c%e3%81%ae%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%921%e8%a1%8c%e3%83%bb%e5%b0%8f%e6%95%b0/">【マクロVBA知識 26】複数行のプログラムを1行・小数行にまとめて短縮する方法 ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>それでは次回の記事でお会いしましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-25%e3%80%91%e9%95%b7%e3%81%8f%e3%81%aa%e3%81%a3%e3%81%9f%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%92%e6%94%b9%e8%a1%8c%e3%83%bb/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2308</post-id>	</item>
		<item>
		<title>【マクロVBAエラー対応】ユーザーフォームのShowでFunctionまたは変数が必要ですの対応法</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%82%a8%e3%83%a9%e3%83%bc%e5%af%be%e5%bf%9c%e3%80%91%e3%83%a6%e3%83%bc%e3%82%b6%e3%83%bc%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e3%81%aeshow%e3%81%a7function/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e5%25af%25be%25e5%25bf%259c%25e3%2580%2591%25e3%2583%25a6%25e3%2583%25bc%25e3%2582%25b6%25e3%2583%25bc%25e3%2583%2595%25e3%2582%25a9%25e3%2583%25bc%25e3%2583%25a0%25e3%2581%25aeshow%25e3%2581%25a7function</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%82%a8%e3%83%a9%e3%83%bc%e5%af%be%e5%bf%9c%e3%80%91%e3%83%a6%e3%83%bc%e3%82%b6%e3%83%bc%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e3%81%aeshow%e3%81%a7function/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Sun, 27 Feb 2022 13:10:17 +0000</pubDate>
				<category><![CDATA[エラー対策]]></category>
		<category><![CDATA[マクロVBA応用・便利技]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[ユーザーフォーム]]></category>
		<category><![CDATA[Show]]></category>
		<category><![CDATA[エラー]]></category>
		<category><![CDATA[VBA]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=2295</guid>

					<description><![CDATA[本記事はVBAのエラー対応について説明します。今回はユーザーフォームを表示（Show）する際に発生する「Functionまたは変数が必要です」というエラーの原因と対策について紹介したいと思います。 このエラーが発生すると [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>本記事はVBAのエラー対応について説明します。<br>今回はユーザーフォームを表示（Show）する際に発生する<br><strong><span class="marker-under">「Functionまたは変数が必要です」というエラーの原因と対策</span></strong>について紹介したいと思います。</p>



<p>このエラーが発生するとプログラム自体を走らせることができなくなるので対策が必要です。</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-18" checked><label class="toc-title" for="toc-checkbox-18">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">■通常のユーザーフォームの表示</a></li><li><a href="#toc2" tabindex="0">■「Functionまたは変数が必要です」のエラーの原因と対策法</a></li><li><a href="#toc3" tabindex="0">■まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">■通常のユーザーフォームの表示</span></h2>



<p>まずはエラーが発生しないユーザーフォームの表示を見てみましょう。<br>見本で下図のユーザーフォームを作成してみました。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/02/image-82.png" alt="" class="wp-image-2296" width="537" height="252" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/02/image-82.png 746w, https://dokugakuexcel.com/wp-content/uploads/2022/02/image-82-300x141.png 300w" sizes="(max-width: 537px) 100vw, 537px" /></figure>



<p>特に変わりないユーザーフォームになってます。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="329" height="206" src="https://dokugakuexcel.com/wp-content/uploads/2022/02/image-83.png" alt="" class="wp-image-2297" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/02/image-83.png 329w, https://dokugakuexcel.com/wp-content/uploads/2022/02/image-83-300x188.png 300w" sizes="(max-width: 329px) 100vw, 329px" /></figure>



<p>ここで注目してほしいのは<strong><span class="marker-under-red">「オブジェクト名」</span></strong>です。<br>ではこちらのユーザーフォームを表示するだけのマクロVBAのプログラムを見てみましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>Sub ユーザーフォームを表示()</strong></p><p><strong><span class="marker-under-red">更新中</span>.Show</strong></p><p><strong>End Sub</strong></p></blockquote>



<p>とてもシンプルですね。<br><strong><span class="marker-under-red">更新中のユーザーフォームを表示する</span></strong>ので<br><strong><span class="bold-red"><span class="marker-under-red">更新中.Show</span></span></strong><br>というプログラムです。</p>



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



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/02/image-84.png" alt="" class="wp-image-2298" width="533" height="284" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/02/image-84.png 929w, https://dokugakuexcel.com/wp-content/uploads/2022/02/image-84-300x160.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/02/image-84-768x409.png 768w" sizes="(max-width: 533px) 100vw, 533px" /></figure>



<p>問題なくユーザーフォームを表示することができました。</p>



<h2 class="wp-block-heading"><span id="toc2">■「Functionまたは変数が必要です」のエラーの原因と対策法</span></h2>



<p>では本題に移りたいと思います。<br>下記のマクロVBAのプログラムをご覧ください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>Sub 更新中()</strong></p><p><strong>更新中.Show</strong></p><p><strong>End Sub</strong></p></blockquote>



<p>一見問題なさそうなプログラムですよね。<br>では実行してみましょう。すると下記のようなエラーが表示されました。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/02/image-85.png" alt="" class="wp-image-2299" width="426" height="236" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/02/image-85.png 524w, https://dokugakuexcel.com/wp-content/uploads/2022/02/image-85-300x166.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/02/image-85-160x90.png 160w" sizes="(max-width: 426px) 100vw, 426px" /></figure>



<p>ここでお気づきの方もおられると思いますが<br><strong><span class="marker-under">実行プログラム自体は先ほどの見本では実行できたことから何も問題ありません</span></strong>。</p>



<p>では正常に機能するプログラムとエラーが発生するプログラムを見比べてみましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><span class="bold-blue"><span class="fz-24px"><span class="fz-22px">正常のマクロVBAのプログラム</span></span></span></strong></p><p>Sub <strong><span class="marker-under-blue">ユーザーフォームを表示</span></strong>()</p><p><strong><span class="marker-under-red">更新中</span></strong>.Show</p><p>End Sub</p></blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><span class="bold-red"><span class="fz-22px">異常のマクロVBAのプログラム</span></span></strong></p><p>Sub<span class="marker-under-red"> <strong>更新中</strong></span>()</p><p><strong><span class="marker-under-red">更新中</span></strong>.Show</p><p>End Sub</p></blockquote>



<p>お分かりいただけましたでしょうか。</p>



<p>正常であるプログラムはプログラム名が「ユーザーフォームを表示」で「更新中」のユーザーフォームを表示させてますが、エラーが発生するプログラムは「更新中」というプログラム名で「更新中」のユーザーフォームを表示させてます。</p>



<p>つまり、<strong><span class="marker-under-red">エラーの原因は「オブジェクト名とプログラム名が一緒」である</span></strong>ことがわかります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="716" height="206" src="https://dokugakuexcel.com/wp-content/uploads/2022/02/image-86.png" alt="" class="wp-image-2300" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/02/image-86.png 716w, https://dokugakuexcel.com/wp-content/uploads/2022/02/image-86-300x86.png 300w" sizes="(max-width: 716px) 100vw, 716px" /></figure>



<p>なので<strong><span class="marker-under-blue">対策としてはオブジェクト名とプログラム名は同じでないこと</span></strong>が正常のプログラムに欠かせません。</p>



<p>どうしても同じ名前で付けたい場合は下記プログラムのように1文字でも付け加えるだけで正常に動いてくれます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 更新中1()</p><p>更新中.Show</p><p>End Sub</p></blockquote>



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



<p>いかがだったでしょうか。<br>私もユーザーフォームを使用し始めたときに同じエラーが発生して<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%82%a8%e3%83%a9%e3%83%bc%e5%af%be%e5%bf%9c%e3%80%91%e3%83%a6%e3%83%bc%e3%82%b6%e3%83%bc%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e3%81%aeshow%e3%81%a7function/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2295</post-id>	</item>
		<item>
		<title>【マクロVBA】Select Caseで様々な条件・ケースの分岐処理!不等式やループの抜け方も紹介</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-24%e3%80%91%e8%a4%87%e6%95%b0%e3%81%aeif%e3%82%92%e7%9f%ad%e7%b8%aeselect-case%e3%81%a7%e6%a7%98%e3%80%85%e3%81%aa%e6%9d%a1%e4%bb%b6%e3%83%bb/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e7%259f%25a5%25e8%25ad%2598-24%25e3%2580%2591%25e8%25a4%2587%25e6%2595%25b0%25e3%2581%25aeif%25e3%2582%2592%25e7%259f%25ad%25e7%25b8%25aeselect-case%25e3%2581%25a7%25e6%25a7%2598%25e3%2580%2585%25e3%2581%25aa%25e6%259d%25a1%25e4%25bb%25b6%25e3%2583%25bb</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-24%e3%80%91%e8%a4%87%e6%95%b0%e3%81%aeif%e3%82%92%e7%9f%ad%e7%b8%aeselect-case%e3%81%a7%e6%a7%98%e3%80%85%e3%81%aa%e6%9d%a1%e4%bb%b6%e3%83%bb/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Thu, 03 Feb 2022 08:45:01 +0000</pubDate>
				<category><![CDATA[条件分岐]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[条件]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[Select Case]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=2180</guid>

					<description><![CDATA[IF Thenで条件分岐での処理はしたことがあるでしょうか。IF Thenについての記事はこちらから☟ 【マクロ・VBA知識 9】If …Thenで条件分岐・判別をする(○○なら△△) ► 独学エクセル塾 (dokuga [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>IF Thenで条件分岐での処理はしたことがあるでしょうか。<br>IF Thenについての記事はこちらから☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90vba%e7%9f%a5%e8%ad%98-9%e3%80%91if-then%e3%81%a7%e6%9d%a1%e4%bb%b6%e5%88%86%e5%b2%90%e3%83%bb%e5%88%a4%e5%88%a5%e3%82%92%e3%81%99%e3%82%8b%e2%97%8b%e2%97%8b%e3%81%aa%e3%82%89/?preview_id=466&amp;preview_nonce=3ed71ba4d4&amp;preview=true&amp;_thumbnail_id=470">【マクロ・VBA知識 9】If …Thenで条件分岐・判別をする(○○なら△△) ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>Else If を使用すれば様々な条件・ケースの処理が可能になります。<br>しかし、<strong><span class="marker-under">複数の条件を組み合わせて多用すればVBAプログラムは複雑になってしまいます</span></strong>。</p>



<p>そこで<strong><span class="marker-under">Select Caseを使用すれば簡単で様々な条件・ケースにあった処理が可能</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-20" checked><label class="toc-title" for="toc-checkbox-20">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">■Select Caseの使用方法</a></li><li><a href="#toc2" tabindex="0">■Select Caseを使用して条件分岐処理をする</a></li><li><a href="#toc3" tabindex="0">■Select Caseを使用した応用機能</a><ol><li><a href="#toc4" tabindex="0">・比較演算子を使用しない条件分岐方法</a></li><li><a href="#toc5" tabindex="0">・Caseで範囲を指定しない場合</a></li><li><a href="#toc6" tabindex="0">・アルファベットの範囲指定</a></li></ol></li><li><a href="#toc7" tabindex="0">■ループを抜き出す方法</a></li><li><a href="#toc8" tabindex="0">■公式の説明</a></li><li><a href="#toc9" tabindex="0">■まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading" id="select-caseの使用方法"><span id="toc1">■Select Caseの使用方法</span></h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Select Case 条件の対象</p><p>Case Is 条件①<br>　　　条件①の処理</p><p>Case Is 条件②<br>　　　条件②の処理</p><p>Case Is 条件③<br>　　　条件③の処理</p><p>・・・</p><p>End Select</p></blockquote>



<h2 class="wp-block-heading" id="select-caseを使用して条件分岐処理をする"><span id="toc2">■Select Caseを使用して条件分岐処理をする</span></h2>



<p>では見本を元に説明していきます。<br>下図をご覧ください。今回は体温を入力して「高熱・発熱・微熱・平熱」を判断してみます。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="709" height="269" src="https://dokugakuexcel.com/wp-content/uploads/2022/02/image-15.png" alt="" class="wp-image-2183" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/02/image-15.png 709w, https://dokugakuexcel.com/wp-content/uploads/2022/02/image-15-300x114.png 300w" sizes="(max-width: 709px) 100vw, 709px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>条件として<br><strong>①38.5℃以上は「高熱」<br>②38.0℃以上は「発熱」<br>③37.0℃以上は「微熱」<br>④36.9℃以下は「平熱」</strong><br>の4段階を処理します。</p></blockquote>



<p>ではまず、Select Caseを使用せず、ElseIfを使用してプログラムを作成してみました。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 体温の判断①()</p><p>If Range(&#8220;C4&#8221;) &gt;= 38.5 Then<br>Range(&#8220;C7&#8221;) = &#8220;高熱&#8221;</p><p>ElseIf Range(&#8220;C4&#8221;) &gt;= 38 Then<br>Range(&#8220;C7&#8221;) = &#8220;発熱&#8221;</p><p>ElseIf Range(&#8220;C4&#8221;) &gt;= 37 Then<br>Range(&#8220;C7&#8221;) = &#8220;微熱&#8221;</p><p>ElseIf Range(&#8220;C4&#8221;) &lt;= 36.9 Then<br>Range(&#8220;C7&#8221;) = &#8220;平熱&#8221;<br>End If</p><p>End Sub</p></blockquote>



<p>このプログラムでも求められる機能を満たすことは可能です。<br>しかし、<strong><span class="marker-under-red">毎回「Range(&#8220;C4&#8221;)」を入力</span></strong>して手間がかかるうえに<br>「ElseIf」が重なり、とても<strong><span class="marker-under-red">複雑で入力がめんどくさいプログラム</span></strong>になっていますね。</p>



<p>こちらをSelect Caseを使用してシンプルで簡潔なプログラムにしたいと思います。</p>



<p>ではSelect Caseの使用方法を振り返りましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Select Case 条件の対象</p><p>Case Is 条件①<br>　　　条件①の処理</p><p>Case Is 条件②<br>　　　条件②の処理</p><p>Case Is 条件③<br>　　　条件③の処理</p><p>・・・</p><p>End Select</p></blockquote>



<p>特徴として<strong><span class="marker-under">条件の対象を1度打ち込めばＣase Ifでその対象を比較してくれます</span></strong>。<br>つまり毎回「Range(&#8220;C4&#8221;)」を打ち込まなくても比較してくれるようになります。</p>



<p>さらに<strong><span class="marker-under">Select Caseで宣言した後はEnd Selectで挟んでください</span></strong>。</p>



<p>Select Caseを使用したプログラムはこのようになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 体温の判断②SelectCaseの場合()</p><p>Select Case Range(&#8220;C4&#8221;)</p><p>Case Is &gt;= 38.5<br>Range(&#8220;C7&#8221;) = &#8220;高熱&#8221;</p><p>Case Is &gt;= 38<br>Range(&#8220;C7&#8221;) = &#8220;発熱&#8221;</p><p>Case Is &gt;= 37<br>Range(&#8220;C7&#8221;) = &#8220;微熱&#8221;</p><p>Case Is &lt;= 36.9<br>Range(&#8220;C7&#8221;) = &#8220;平熱&#8221;</p><p>End Select</p><p>End Sub</p></blockquote>



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



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/02/image-16.png" alt="" class="wp-image-2184" width="506" height="257" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/02/image-16.png 721w, https://dokugakuexcel.com/wp-content/uploads/2022/02/image-16-300x152.png 300w" sizes="(max-width: 506px) 100vw, 506px" /></figure>



<p>うまく機能してくれていますね。<br><strong><span class="marker-under">プログラムもシンプルになりました</span></strong>。<br><strong><span class="marker-under">比較対象が1つの場合はSelect Caseを使用してみてください</span></strong>。</p>



<h2 class="wp-block-heading" id="select-caseを使用した応用機能"><span id="toc3">■Select Caseを使用した応用機能</span></h2>



<h3 class="wp-block-heading" id="比較演算子を使用しない条件分岐方法"><span id="toc4">・比較演算子を使用しない条件分岐方法</span></h3>



<p>先ほどは「&gt;=」などの比較演算子の方法で条件分岐を行いましたが<br>比較演算子を使用しなくても条件分岐する方法があります。</p>



<p>先ほど発熱の範囲は38℃から38.4℃でした。<br>その際の条件分岐式は下記の要領で設定しましたね。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Case Is &gt;= 38.5<br>Range(&#8220;C7&#8221;) = &#8220;高熱&#8221;</p><p>Case Is &gt;= 38<br>Range(&#8220;C7&#8221;) = &#8220;発熱&#8221;</p></blockquote>



<p>こちらで必然的に38℃から38.4℃は「発熱」となります。</p>



<p>では<strong><span class="marker-under">「○○～△△」と数値の範囲を設定したい時の簡単な方法をご紹介します</span></strong>。<br><strong><span class="marker-under">使用するのは「To」</span></strong>です。</p>



<p>Toの使用方法は　<strong><span class="marker-under-red">「Case　○○　To △△」</span></strong>のように使用します。<br>では先ほどの<strong><span class="marker-under-red">38℃から38.5℃は発熱という判別式を「To」で作成</span></strong>すると<br>下記のようになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Case 38 To 38.4<br>Range(&#8220;C7&#8221;) = &#8220;発熱&#8221;</p></blockquote>



<p>ちなみにＴoを使用する際は<strong><span class="marker-under-blue">「小さい数値　Ｔo　大きい数値」の順に入力</span></strong>しなければ<br>うまく条件分岐できないので注意が必要です。</p>



<h3 class="wp-block-heading" id="caseで範囲を指定しない場合"><span id="toc5">・Caseで範囲を指定しない場合</span></h3>



<p>これまで「&gt;=」といった比較演算子や「Ｔo」を使用した範囲指定をしましたね。<br>では<strong><span class="marker-under">範囲指定しない場合</span></strong>を見てみましょう。</p>



<p>下図をご覧ください。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="560" height="208" src="https://dokugakuexcel.com/wp-content/uploads/2022/02/image-17.png" alt="" class="wp-image-2185" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/02/image-17.png 560w, https://dokugakuexcel.com/wp-content/uploads/2022/02/image-17-300x111.png 300w" sizes="(max-width: 560px) 100vw, 560px" /></figure>



<p><strong><span class="marker-under-red">「36.5」℃の場合は「標準体温」と表記するようにしましょう</span></strong>。<br>プログラムは単純です。</p>



<p>36.5で条件分岐をしたい場合は「Case 36.5」というように<br><strong><span class="marker-under-red">数値のみ入力すれば「36.5」の時のみ条件分岐処理ができます</span></strong>。</p>



<p>プログラムは下記の通りです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 体温の判断②SelectCaseの場合()</p><p>Select Case Range(&#8220;C4&#8221;)</p><p>Case 36.5<br>Range(&#8220;C7&#8221;) = &#8220;標準体温&#8221;</p><p>End Select</p><p>End Sub</p></blockquote>



<h3 class="wp-block-heading" id="アルファベットの範囲指定"><span id="toc6">・アルファベットの範囲指定</span></h3>



<p>これまでの条件として数値の範囲で分岐させていましたが<br><strong><span class="marker-under">アルファベットの範囲指定もSelect Caseでは可能</span></strong>になります。</p>



<p>下図をご覧ください。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/02/image-18.png" alt="" class="wp-image-2186" width="439" height="169" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/02/image-18.png 574w, https://dokugakuexcel.com/wp-content/uploads/2022/02/image-18-300x116.png 300w" sizes="(max-width: 439px) 100vw, 439px" /></figure>



<p>評価が<strong><span class="marker-under-red">「AからC」の時は「合格」、「DからF」の時は「不合格」と<br>処理するプログラムを作成してみましょう</span></strong>。</p>



<p>数値の時は「1から5」の場合は「1 To 5 」で範囲指定しましたよね。<br>考え方は同じで<strong><span class="marker-under-red">「AからC」のときは「&#8221;A&#8221; To &#8220;C&#8221;」</span></strong>となります。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub SelectCaseでアルファベットの範囲指定()</p><p>Select Case Range(&#8220;C4&#8221;)</p><p>Case &#8220;A&#8221; To &#8220;C&#8221;<br>Range(&#8220;C7&#8221;) = &#8220;合格&#8221;</p><p>Case &#8220;D&#8221; To &#8220;F&#8221;<br>Range(&#8220;C7&#8221;) = &#8220;不合格&#8221;</p><p>End Select</p><p>End Sub</p></blockquote>



<p>実行した結果はこのようになります。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/02/image-19.png" alt="" class="wp-image-2187" width="523" height="142" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/02/image-19.png 748w, https://dokugakuexcel.com/wp-content/uploads/2022/02/image-19-300x81.png 300w" sizes="(max-width: 523px) 100vw, 523px" /></figure>



<p>うまく機能していますね。</p>



<p></p>



<h2 class="wp-block-heading"><span id="toc7">■ループを抜き出す方法</span></h2>



<p>ここではSelect Caseでループを抜け出す方法を紹介します。</p>



<p>使用するのはIf&#8230;Thenと呼ばれる条件分岐とGotoになります。</p>



<p></p>



<p>仕組みとしては<strong><span class="marker-under">If&#8230;Thenで指定した条件に当てはまるか確認</span></strong>し、</p>



<p><strong><span class="marker-under">結果にあわせてGotoでプログラムを飛ばします。</span></strong></p>



<p>詳しくは下記記事でまとめていますので参考にしてみてください☟</p>



<p><a href="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/">【マクロVBA知識 11】GoToでプログラムを指定した場所まで飛ばす方法について Excel ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



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



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



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



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



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



<p>いかがだったでしょうか。<br>IF Thenとは少し異なる条件分岐の処理だったと思います。</p>



<p>比較対象が1つの場合には確実にIFよりもSelect Caseの方が<br>簡単で作成しやすいですよね。</p>



<p>ぜひSelect CaseとIFを使い分けて活用してみてください。</p>



<p>それでは次回の記事でお会いしましょう。</p>



<p></p>



<p>次回の記事はこちらから☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-25%e3%80%91%e9%95%b7%e3%81%8f%e3%81%aa%e3%81%a3%e3%81%9f%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%92%e6%94%b9%e8%a1%8c%e3%83%bb/?preview_id=2308&amp;preview_nonce=29071d402c&amp;preview=true&amp;_thumbnail_id=2318">【マクロVBA知識 25】長くなったプログラムを改行・複数の行に分ける方法 ► 独学エクセル塾 (dokugakuexcel.com)</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-24%e3%80%91%e8%a4%87%e6%95%b0%e3%81%aeif%e3%82%92%e7%9f%ad%e7%b8%aeselect-case%e3%81%a7%e6%a7%98%e3%80%85%e3%81%aa%e6%9d%a1%e4%bb%b6%e3%83%bb/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2180</post-id>	</item>
	</channel>
</rss>
