<?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/category/%e3%83%9e%e3%82%af%e3%83%advba/%e3%83%96%e3%83%83%e3%82%af%e6%93%8d%e4%bd%9c/feed/" rel="self" type="application/rss+xml" />
	<link>https://dokugakuexcel.com</link>
	<description>初心者から中級者までシステム・関数・VBAを伝授します</description>
	<lastBuildDate>Sun, 16 Oct 2022 14:11:44 +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%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e6%96%87%e5%ad%97%e3%81%ae%e4%b8%80%e9%83%a8%e3%82%92%e5%90%ab%e3%82%80%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab-2/?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%25e6%258c%2587%25e5%25ae%259a%25e3%2581%2597%25e3%2581%259f%25e6%2596%2587%25e5%25ad%2597%25e3%2581%25ae%25e4%25b8%2580%25e9%2583%25a8%25e3%2582%2592%25e5%2590%25ab%25e3%2582%2580%25e3%2583%2595%25e3%2582%25a1%25e3%2582%25a4%25e3%2583%25ab-2</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e6%96%87%e5%ad%97%e3%81%ae%e4%b8%80%e9%83%a8%e3%82%92%e5%90%ab%e3%82%80%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab-2/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Fri, 09 Sep 2022 14:10:11 +0000</pubDate>
				<category><![CDATA[ブック操作]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[ブック]]></category>
		<category><![CDATA[開く]]></category>
		<category><![CDATA[ワイルドカード]]></category>
		<category><![CDATA[Dir]]></category>
		<category><![CDATA[指定文字]]></category>
		<category><![CDATA[指定フォルダ]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=3463</guid>

					<description><![CDATA[これまで対象のブックが開いてあるか、閉じてあるか確認する方法を紹介しました。詳細の記事はこちらから☟ 【マクロVBA】ブックを開いているか確認し、開いていなければ開く（Open)開いてあればアクティブに ► 独学エクセル [&#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%e3%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92%e9%96%8b%e3%81%84%e3%81%a6%e3%81%84%e3%82%8b%e3%81%8b%e7%a2%ba%e8%aa%8d%e3%81%97%e3%80%81%e9%96%8b%e3%81%84/">【マクロVBA】ブックを開いているか確認し、開いていなければ開く（Open)開いてあればアクティブに ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>今回はさらに発展させた内容を紹介します。内容としては<strong><span class="marker-under">指定した文字の一部を含むブックを<br>開いているか・閉じているか確認して、開いていなければ開く</span></strong>といった処理を行いたいと思います。</p>



<p>もちろん、対象のファイルがたくさんあった場合にも対応可能です。</p>



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




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">&#x2b1b;︎こんなことができるようになる！</a></li><li><a href="#toc2" tabindex="0">■忙しい人向けのコピペ用プログラム</a></li><li><a href="#toc3" tabindex="0">&#x2b1b;︎通常のブック名を指定して確認する方法</a></li><li><a href="#toc4" tabindex="0">&#x2b1b;︎文字の一部を含むブックが開いてあるか確認して、開いていなければ開く</a></li><li><a href="#toc5" tabindex="0">&#x2b1b;︎ワイルドカードの応用方法</a></li><li><a href="#toc6" tabindex="0">&#x2b1b;︎公式の説明</a></li><li><a href="#toc7" tabindex="0">&#x2b1b;︎まとめ</a></li></ol>
    </div>
  </div>

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



<p>・対象の文字を含むブック名のブックが開いているか確認し、開いていなければ開くことができる</p>



<figure class="wp-block-image size-full is-resized"><img fetchpriority="high" decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-53.png" alt="" class="wp-image-3464" width="435" height="253" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-53.png 614w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-53-300x174.png 300w" sizes="(max-width: 435px) 100vw, 435px" /></figure>



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



<p>「<strong><span class="bold-red">ここにフォルダのパスを入力する</span></strong>」と「<strong><span class="bold-blue">ここに指定文字を入力</span></strong>」の</p>



<p>個所をお好みで打ち換えてください。</p>



<p>結果として指定フォルダ内の指定文字を開いているか確認し、開いていなければ開きます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 指定ファイルを開いているか確認し､開く()</p><p>Dim OpenBook As Workbook, Flag As Boolean<br>Dim Filename As String, Foldername As String, Searchname As String</p><p></p><p>Foldername = &#8220;<span class="bold-red">ここにフォルダのパスを入力する</span>&#8220;<br>Searchname = &#8220;<span class="bold-blue">ここに指定文字を入力</span>&#8220;</p><p></p><p>Filename = Dir(Foldername &amp; &#8220;*&#8221; &amp; Searchname &amp; &#8220;*&#8221;)<br>Do While Filename &lt;&gt; &#8220;&#8221;<br>Flag = False</p><p>For Each OpenBook In Workbooks</p><p>If OpenBook.Name = Filename Then<br>Flag = True<br>End If</p><p>Next</p><p>If Flag = False Then<br>Workbooks.Open Foldername &amp; &#8220;\&#8221; &amp; Filename<br>End If</p><p>Filename = Dir</p><p>Loop</p><p>End Sub</p></blockquote>



<p></p>



<p></p>



<p></p>



<h2 class="wp-block-heading"><span id="toc3">&#x2b1b;︎通常のブック名を指定して確認する方法</span></h2>



<p>まず、おさらいとして<strong><span class="marker-under">ブック名が全て判明している場合</span></strong>で<br>対象ブックが開いていなければ対象ブックを開くプログラムをご紹介します。<br>プログラムは下記の通りです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ブックAを開いているか確認し､開く()</p><p>Dim OpenBook As Workbook, Flag As Boolean</p><p>Flag = False</p><p><br>For Each OpenBook In Workbooks</p><p>If OpenBook.Name = &#8220;ブックA.xlsx&#8221; Then<br>Flag = True<br>End If</p><p>Next</p><p></p><p>If Flag = False Then<br>Workbooks.Open &#8220;C:\検証ファイル\ブックA.xlsx&#8221;<br>End If</p><p></p><p>End Sub</p></blockquote>



<p>内容として、<strong><span class="marker-under">「For Each　変数　In Workbooks」で現在開いているブックをすべて変数に繰り返し格納</span></strong>します。<br>そして変数に格納したブックと対象ブック名が等しければ「Flag」が「True」になり<br><strong><span class="marker-under-red">「False」の場合は対象ブックを開く</span></strong>といった仕組みです。</p>



<p>ちなみに<strong><span class="marker-under-red">ブックを開く際は「フルパス」で開かないといけません。</span></strong><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-16%e3%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92%e9%96%8b%e3%81%8f%e3%83%bb%e4%bd%9c%e6%88%90%e3%83%bb%e5%90%8d%e5%89%8d%e3%81%ae%e5%a4%89/">【マクロVBA知識 16】ブックを開く・作成・名前の変更・フォルダの移動・保存・閉じる ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p></p>



<p>今回はこの動作を応用して指定文字の一部でも等しい場合は対象ブックを開きたいと思います。</p>



<h2 class="wp-block-heading"><span id="toc4">&#x2b1b;︎文字の一部を含むブックが開いてあるか確認して、開いていなければ開く</span></h2>



<p>では本題に入ります。<br>内容としては<strong><span class="marker-under">対象の文字を含むファイル</span></strong>に対し、現在開いてあるブックを照らし合わせて<br><strong><span class="marker-under">開いているか確認し、開いてなければ開く</span></strong>といった内容となってます。</p>



<p>通常の処理と異なるのは「文字の一部」という面です。<br>その際に使用する機能は<strong><span class="marker-under-red">「ワイルドカード」</span></strong>と呼ばれる「<span class="bold-red">&#x2733;︎</span>」となります。</p>



<p>こちらの効果として<strong><span class="marker-under-red">すべての文字・数値を含む便利な機能です</span></strong>。</p>



<p>　</p>



<p>さらに使用する機能は「<span class="bold-blue">Dir</span>」になります。<br>こちらは<strong><span class="marker-under-blue">指定フォルダにどのようなファイルがあるか検出</span></strong>できます。<br>詳しくは下記記事にまとめていますのでご覧ください。</p>



<p><a href="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/">【マクロVBA】Dir関数で指定フォルダから対象ファイル・ブックが存在するか確認、処理する！一覧も可 ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>では「<span class="bold-red">*</span>」と「<span class="bold-blue">Dir</span>」を合わせてみましょう。</p>



<pre class="wp-block-verse"><strong><span class="fz-20px"><span class="bold-green">変数</span> = <span class="bold-blue">Dir</span>("C:\検証ファイル\<span class="bold-red">*</span>A<span class="bold-red">*</span>")</span></strong></pre>



<p>今回は指定フォルダを「Cドライブの検証ファイル」としています。<br>こちらに「A」の文字が含まれたファイルがあればファイル名を変数に格納します。</p>



<p> </p>



<p>その変数とこれまで紹介したファイル名を比較するプログラムを合わせたプログラムがこちらです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Flag = False</p><p>For Each OpenBook In Workbooks</p><p>If OpenBook.Name = <span class="bold-green">変数</span> Then<br>Flag = True<br>End If</p><p>Next</p></blockquote>



<p>これにより、<strong><span class="marker-under">対象としたい文字が含まれたファイルと開いているファイルを比較して、開いていれば変数「Flag」が「True」となるプログラム</span></strong>となります。</p>



<p>では見本を見ていきましょう。<br>今回は「A」という文字を含んであるブックを開いているか確認して<br>開いてなければ開いてみましょう。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ブックAを開いているか確認し､開く()</p><p></p><p>Dim OpenBook As Workbook, Flag As Boolean, Filename</p><p>Filename = Dir(&#8220;C:\検証ファイル*A*&#8221;)</p><p><br>Do While Filename &lt;&gt; &#8220;&#8221;<br>Flag = False</p><p></p><p>　　For Each OpenBook In Workbooks</p><p>　　　If OpenBook.Name = Filename Then<br>　　　Flag = True<br>　　　End If</p><p>　　Next</p><p></p><p>　　If Flag = False Then<br>　　Workbooks.Open &#8220;C:\検証ファイル\&#8221; &amp; Filename<br>　　End If</p><p></p><p>Filename = Dir</p><p>Loop</p><p></p><p>End Sub</p></blockquote>



<p>では実行すればどのようになるか説明します。<br>たとえば「A-1」「A-2」「A-3」「B-1」「B-2」「B-3」「C-1」「C-2」「C-3」<br>というファイルが存在していたとします。</p>



<p>今回は例でブック名に「A」がつくブックを開くので<br>「A」を含む「A-1」「A-2」「A-3」がすでに開いているか確認し、開いてなけれな開きます。</p>



<p> </p>



<p>まとめとして、「Foldername」 と「Searchname」の個所を入力すれば</p>



<p>機能するプログラムを載せておきます。</p>



<p>　</p>



<p>「<strong><span class="bold-red">ここにフォルダのパスを入力する</span></strong>」と「<strong><span class="bold-blue">ここに指定文字を入力</span></strong>」の</p>



<p>個所をお好みで打ち換えてください。</p>



<p>結果として指定フォルダ内の指定文字を開いているか確認し、開いていなければ開きます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 指定ファイルを開いているか確認し､開く()</p><p>Dim OpenBook As Workbook, Flag As Boolean<br>Dim Filename As String, Foldername As String, Searchname As String</p><p></p><p>Foldername = &#8220;<span class="bold-red">ここにフォルダのパスを入力する</span>&#8220;<br>Searchname = &#8220;<span class="bold-blue">ここに指定文字を入力</span>&#8220;</p><p></p><p>Filename = Dir(Foldername &amp; &#8220;*&#8221; &amp; Searchname &amp; &#8220;*&#8221;)<br>Do While Filename &lt;&gt; &#8220;&#8221;<br>Flag = False</p><p>For Each OpenBook In Workbooks</p><p>If OpenBook.Name = Filename Then<br>Flag = True<br>End If</p><p>Next</p><p>If Flag = False Then<br>Workbooks.Open Foldername &amp; &#8220;\&#8221; &amp; Filename<br>End If</p><p>Filename = Dir</p><p>Loop</p><p>End Sub</p></blockquote>



<p></p>



<p></p>



<h2 class="wp-block-heading"><span id="toc5">&#x2b1b;︎ワイルドカードの応用方法</span></h2>



<p>これまでは指定の文字を含むブックが開いてあるか確認し、<br>開いてあればブックを閉じていました。</p>



<p>例えば「A」を含むブックを閉じたければ「&#x2733;︎A&#x2733;︎」の条件で開いてあるか確認してましたね。<br>しかし場合によっては「○○○A×××」というファイル名の形式があった場合、○○○の部分は対象から<br>外したい場合などが存在します。</p>



<p>その場合は「&#x2733;︎」の位置を変える必要があります。</p>



<p>先程の例で説明すると「○○○A×××」の「○○○A」までは固定で「×」の部分は全対象としたい場合、<br>「A&#x2733;︎」を条件とします。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ブックAを開いているか確認し､開く()</p><p>Dim OpenBook As Workbook, Flag As Boolean, Filename</p><p>Filename = Dir(&#8220;C:\検証ファイル\A*&#8221;)<br>Do While Filename &lt;&gt; &#8220;&#8221;<br>Flag = False</p><p>For Each OpenBook In Workbooks</p><p>If OpenBook.Name = Filename Then<br>Flag = True<br>End If</p><p>Next</p><p>If Flag = False Then<br>Workbooks.Open &#8220;C:\検証ファイル\&#8221; &amp; Filename<br>End If</p><p>Filename = Dir</p><p>Loop</p><p>End Sub</p></blockquote>



<p>反対に「○○○A×××」の「A×××」までは固定で「○」の部分を全対象とする場合は<br>「&#x2733;︎A」となります。</p>



<p>「&#x2733;︎（ワイルドカード）」については下記記事でまとめてますのでぜひ参考にしてみて下さい。</p>



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



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



<p><a href="https://learn.microsoft.com/ja-jp/office/vba/api/excel.workbooks.open">Workbooks.Open メソッド (Excel) | Microsoft Learn</a></p>



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



<p>いかがだったでしょうか。<br>指定した文字を含むブックを開く際にはとても楽になる知識です。</p>



<p>例えば日付でファイル名を管理してファイル開く、閉じるなどの<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%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e6%96%87%e5%ad%97%e3%81%ae%e4%b8%80%e9%83%a8%e3%82%92%e5%90%ab%e3%82%80%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3463</post-id>	</item>
		<item>
		<title>【マクロVBA】Nameでファイル・ブックの保存先フォルダを変更・移動させる！名前の変更も対応！</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91name%e3%81%a7%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%83%bb%e3%83%96%e3%83%83%e3%82%af%e3%81%ae%e4%bf%9d%e5%ad%98%e5%85%88%e3%83%95%e3%82%a9%e3%83%ab/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e3%2580%2591name%25e3%2581%25a7%25e3%2583%2595%25e3%2582%25a1%25e3%2582%25a4%25e3%2583%25ab%25e3%2583%25bb%25e3%2583%2596%25e3%2583%2583%25e3%2582%25af%25e3%2581%25ae%25e4%25bf%259d%25e5%25ad%2598%25e5%2585%2588%25e3%2583%2595%25e3%2582%25a9%25e3%2583%25ab</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91name%e3%81%a7%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%83%bb%e3%83%96%e3%83%83%e3%82%af%e3%81%ae%e4%bf%9d%e5%ad%98%e5%85%88%e3%83%95%e3%82%a9%e3%83%ab/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Fri, 09 Sep 2022 02:21:30 +0000</pubDate>
				<category><![CDATA[ブック操作]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[Name]]></category>
		<category><![CDATA[As]]></category>
		<category><![CDATA[ファイル移動]]></category>
		<category><![CDATA[ファイルの名前変更]]></category>
		<category><![CDATA[フルパス]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=3451</guid>

					<description><![CDATA[VBAで大量のデータを処理する場合や該当する ファイル・ブックを移動させたい場合、「Name」の機能を使用すれば、保存先のフォルダに変更・移動させることができます。 たとえば、csvファイルが順次、指定フォルダに入ってき [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>VBAで大量のデータを処理する場合や該当する</p>



<p>ファイル・ブックを移動させたい場合、<br>「Name」の機能を使用すれば、<strong><span class="marker-under">保存先のフォルダに変更・移動させる</span></strong>ことができます。</p>



<p>たとえば、csvファイルが順次、指定フォルダに入ってきて処理する際に<br>読み取ったデータを過去データとして保管したい場合などには便利です。</p>



<p> </p>



<p>さらに<strong><span class="marker-under">ブック名の名前の変更も可能</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-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">&#x2b1b;︎こんなことができるようになる！</a></li><li><a href="#toc2" tabindex="0">&#x2b1b;︎忙しい人向けの見本プログラム</a></li><li><a href="#toc3" tabindex="0">&#x2b1b;︎構文の設定</a></li><li><a href="#toc4" tabindex="0">&#x2b1b;︎ファイルの保存先フォルダを変更する</a></li><li><a href="#toc5" tabindex="0">&#x2b1b;︎ファイル名を変更する</a></li><li><a href="#toc6" tabindex="0">&#x2b1b;︎よくあるエラーと対処法について</a><ol><li><a href="#toc7" tabindex="0">・実行時エラー&#8217;58&#8217;:既に同名のファイルが存在しています</a></li></ol></li><li><a href="#toc8" tabindex="0">&#x2b1b;︎公式の説明</a></li><li><a href="#toc9" tabindex="0">&#x2b1b;︎まとめ</a></li></ol>
    </div>
  </div>

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



<p>・ファイル・ブックの保存先のフォルダを変更・移動させることができる<br>・読み込んだファイル・ブックを移動させることができる</p>



<h2 class="wp-block-heading"><span id="toc2">&#x2b1b;︎忙しい人向けの見本プログラム</span></h2>



<p></p>



<p><span class="bold-red">赤文字</span>の<span class="bold-red">変更前のフルパス</span>、<span class="bold-blue">青文字</span>の<span class="bold-blue">変更後のフルパス</span>を打ち換えてください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ファイル変更()</p><p>Dim Filename As String</p><p>Filename = Dir(&#8220;<span class="bold-red">変更後のフルパス</span>&#8220;)</p><p>If Filename = &#8220;&#8221; Then<br>Name &#8220;<span class="bold-red">変更前のフルパス</span>&#8221; As &#8220;<span class="bold-blue">変更後のフルパス</span>&#8220;<br>Else<br>MsgBox &#8220;同じファイル名が存在します。移動先・ファイル名を見直してください&#8221;<br>End If</p><p>End Sub</p></blockquote>



<h2 class="wp-block-heading"><span id="toc3">&#x2b1b;︎構文の設定</span></h2>



<pre class="wp-block-verse"><strong><span class="fz-20px">Name <span class="bold-red">変更前のフルパス</span> As <span class="bold-blue">変更後のフルパス</span></span></strong></pre>



<p> </p>



<p>フルパスとは例えば「C:\読み取り前\ブックA.xlsx」のようなものです。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="346" height="80" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-51.png" alt="" class="wp-image-3459" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-51.png 346w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-51-300x69.png 300w" sizes="(max-width: 346px) 100vw, 346px" /><figcaption><img decoding="async" width="351" height="162" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-45.png" alt=""></figcaption></figure>



<p><br>見本では「Cドライブ」の「読み取り前」というフォルダにある「ブックA」という意味になります。</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-16%e3%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92%e9%96%8b%e3%81%8f%e3%83%bb%e4%bd%9c%e6%88%90%e3%83%bb%e5%90%8d%e5%89%8d%e3%81%ae%e5%a4%89/">【マクロVBA知識 16】ブックを開く・作成・名前の変更・フォルダの移動・保存・閉じる ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<h2 class="wp-block-heading"><span id="toc4">&#x2b1b;︎ファイルの保存先フォルダを変更する</span></h2>



<p>では本題に移りたいと思います。<br>例として<strong>「<span class="bold-red">読み取り前</span>」</strong>というフォルダから<strong>「<span class="bold-blue">読み取り後</span>」</strong>というフォルダに移動させてみましょう。</p>



<p>今回は「読み取り前」のフォルダに「ブックA」というExcelファイルを保存しています。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-45.png" alt="" class="wp-image-3452" width="351" height="162" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-45.png 527w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-45-300x138.png 300w" sizes="(max-width: 351px) 100vw, 351px" /></figure>



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



<pre class="wp-block-verse"><strong><strong><span class="fz-20px">Name <span class="bold-red">変更前のフルパス</span> As <span class="bold-blue">変更後のフルパス</span></span></strong></strong></pre>



<p>とてもシンプルですね。<br>今回の例では「Cドライブ」の「読み取り前」というフォルダに保存しているので<br>「<span class="bold-red">C:\読み取り前\ブックA.xlsx</span>」というようになります。</p>



<p>ですのでこの文字が<strong><span class="marker-under-red">変更前のフルパス</span></strong>になります。</p>



<p> </p>



<p>変更後のフォルダを「読み取り前」から「読み取り後」に変えたいので<br>「<strong><span class="bold-blue">C:\読み取り後\ブックA.xlsx</span></strong>」というようになります。</p>



<p>こちらが<strong><span class="marker-under-blue">変更後のフルパス</span></strong>ですね。</p>



<p>では実際に、プログラムを作成してみましょう。<br>プログラムはこのようになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ファイル変更()</p><p>Name &#8220;<span class="bold-red">C:\読み取り前\ブックA.xlsx</span>&#8221; As &#8220;<span class="bold-blue">C:\読み取り後\ブックA.xlsx</span>&#8220;</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-50.png" alt="" class="wp-image-3457" width="620" height="207" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-50.png 775w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-50-300x100.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-50-768x257.png 768w" sizes="(max-width: 620px) 100vw, 620px" /></figure>



<p><strong><span class="marker-under">「読み取り前」のフォルダから「読み取り後」のフォルダに移動</span></strong>できました。<br>MoveFileでの移動もできますが、「Name As」がシンプルで1番簡単だと思います。</p>



<h2 class="wp-block-heading"><span id="toc5">&#x2b1b;︎ファイル名を変更する</span></h2>



<p>先程はフルパスを入力してフォルダの移動を行いました。<br>同じ方法で<strong><span class="marker-under">ファイルの文字列を変更すると、ファイル名を変えることができます。</span></strong></p>



<p>では「読み取り後」のフォルダに入ってある「<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 ファイル変更()</p><p>Name &#8220;C:\読み取り後\<span class="bold-red">ブックA.xlsx</span>&#8221; As &#8220;C:\読み取り後\<span class="bold-blue">ブックB.xlsx</span>&#8220;</p><p>End Sub</p></blockquote>



<p>先ほどと原理は同じですね。<br>それでは実行してみます。結果はこのようになりました。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="798" height="218" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-49.png" alt="" class="wp-image-3456" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-49.png 798w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-49-300x82.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-49-768x210.png 768w" sizes="(max-width: 798px) 100vw, 798px" /></figure>



<p><strong><span class="marker-under">「ブックA」から「ブックB」にファイル名が変更</span></strong>できていますね。</p>



<h2 class="wp-block-heading"><span id="toc6">&#x2b1b;︎よくあるエラーと対処法について</span></h2>



<h3 class="wp-block-heading"><span id="toc7">・実行時エラー&#8217;58&#8217;:既に同名のファイルが存在しています</span></h3>



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



<p>こちらは文字通り、<strong><span class="marker-under-red">移動先のフォルダに同じファイル名のファイルが存在する</span></strong>。または<br><strong><span class="marker-under-red">変更後の名前のファイル名が既に存在している</span></strong>ことが原因です。</p>



<p>このエラーに関しては同じファイル名が無いか確認する必要があるのですが、<br>VBAのプログラムで自動で判別してくれたら便利ですよね。</p>



<p>そこで使用するのが<strong><span class="bold-blue"><span class="marker-under">Dir関数</span></span></strong>になります。</p>



<p><strong><span class="marker-under">Dir関数では入力したファイル名が存在しない場合は空白が返ってきます。</span></strong><br>ちなみにファイル名が存在したらそのファイル名が返ってくる仕組みです。</p>



<p>Dir関数について詳しくまとめていますので是非参考にしてみてください。</p>



<p><a href="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/">【マクロVBA】Dir関数で指定フォルダから対象ファイル・ブックが存在するか確認、処理する！一覧も可 ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ファイル変更()</p><p>Dim Filename As String</p><p>Filename = <span class="bold-blue">Dir</span>(&#8220;C:\読み取り後\ブックB.xlsx&#8221;)</p><p>If Filename = &#8220;&#8221; Then<br>Name &#8220;C:\読み取り後\ブックA.xlsx&#8221; As &#8220;C:\読み取り後\ブックB.xlsx&#8221;<br><strong><span class="marker-under-red">Else</span></strong><br>MsgBox &#8220;<span class="bold-red">同じファイル名が存在します。移動先・ファイル名を見直してください</span>&#8220;<br>End If</p><p>End Sub</p></blockquote>



<p>仕様として<strong><span class="marker-under-red">移動先・変更後のブック名が存在した場合</span></strong>は<br>メッセージボックスで<strong>「<span class="bold-red">同じファイル名が存在します。移動先・ファイル名を見直してください</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/09/image-52.png" alt="" class="wp-image-3460" width="340" height="144" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-52.png 652w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-52-300x128.png 300w" sizes="(max-width: 340px) 100vw, 340px" /></figure>



<p>これで、実行値エラーを防止することができます。</p>



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



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



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



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



<p>いかがだったでしょうか。<br>ファイルの保存先の変更やファイル名の変更を「Nameステートメント」でできます。</p>



<p>読み取ったデータを読み取り後のファイルに移動させたり<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%91name%e3%81%a7%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%83%bb%e3%83%96%e3%83%83%e3%82%af%e3%81%ae%e4%bf%9d%e5%ad%98%e5%85%88%e3%83%95%e3%82%a9%e3%83%ab/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3451</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[ファイル名]]></category>
		<category><![CDATA[一覧]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[Dir]]></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-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">■忙しい人向けのコピペ用プログラム</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】指定した文字の一部を含むファイルが開いてあるか確認し、対象ブックを全て閉じる方法</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e6%96%87%e5%ad%97%e3%81%ae%e4%b8%80%e9%83%a8%e3%82%92%e5%90%ab%e3%82%80%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab/?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%25e6%258c%2587%25e5%25ae%259a%25e3%2581%2597%25e3%2581%259f%25e6%2596%2587%25e5%25ad%2597%25e3%2581%25ae%25e4%25b8%2580%25e9%2583%25a8%25e3%2582%2592%25e5%2590%25ab%25e3%2582%2580%25e3%2583%2595%25e3%2582%25a1%25e3%2582%25a4%25e3%2583%25ab</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e6%96%87%e5%ad%97%e3%81%ae%e4%b8%80%e9%83%a8%e3%82%92%e5%90%ab%e3%82%80%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Mon, 05 Sep 2022 13:29:44 +0000</pubDate>
				<category><![CDATA[ブック操作]]></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=3387</guid>

					<description><![CDATA[これまで対象のブックが開いてあるか、閉じてあるか確認する方法を紹介しました。詳細の記事はこちらから☟ 【マクロVBA】ブックを閉じているか確認して、閉じていない場合のみ閉じる（Close)方法 ► 独学エクセル塾 (do [&#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%e3%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92%e9%96%89%e3%81%98%e3%81%a6%e3%81%84%e3%82%8b%e3%81%8b%e7%a2%ba%e8%aa%8d%e3%81%97%e3%81%a6%e3%80%81%e9%96%89/">【マクロVBA】ブックを閉じているか確認して、閉じていない場合のみ閉じる（Close)方法 ► 独学エクセル塾 (dokugakuexcel.com)</a></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-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">&#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></li><li><a href="#toc6" tabindex="0">&#x2b1b;︎ワイルドカードの応用方法</a></li><li><a href="#toc7" tabindex="0">&#x2b1b;︎公式の説明</a></li><li><a href="#toc8" tabindex="0">&#x2b1b;︎まとめ</a></li></ol>
    </div>
  </div>

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



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



<pre class="wp-block-verse">Sub 対象ブックを閉じているか確認して開いてあれば閉じる()

Dim CloseBook As Workbook, Flag As Boolean

For Each CloseBook In Workbooks
　Flag = False
　　If CloseBook.Name Like "<span class="bold-green">*<span class="bold-red">指定文字</span>*</span>" Then
　　　Flag = True
　　End If
　If Flag = True Then
　　Workbooks(CloseBook.Name).Close
　End If
Next
End Sub</pre>



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



<p>・対象の文字を含むブック名のブックが開いているか確認し、開いていれば閉じるできる</p>



<figure class="wp-block-image size-full"><img decoding="async" width="612" height="351" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-4.png" alt="" class="wp-image-3388" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-4.png 612w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-4-300x172.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-4-330x190.png 330w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-4-120x68.png 120w" sizes="(max-width: 612px) 100vw, 612px" /></figure>



<p></p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 対象ブックを閉じているか確認して開いてあれば閉じる()<br><br>Dim CloseBook As Workbook, Flag As Boolean<br><br>For Each CloseBook In Workbooks<br>Flag = False<br><br>If CloseBook.Name <span class="bold-blue">Like</span> &#8220;<span class="bold-green">*</span><em><span class="bold-green">ここに任意の文字を入力*</span></em>&#8221; Then<br>Flag = True<br>End If<br>If Flag = True Then<br>Workbooks(CloseBook.Name).Close<br>End If<br>Next<br><br>End Sub</p></blockquote>



<h2 class="wp-block-heading"><span id="toc4">&#x2b1b;︎通常のブック名を指定して確認する方法</span></h2>



<p>まず、<strong><span class="marker-under">おさらい</span></strong>としてブック名が全て判明している場合です。<br><strong><span class="marker-under-blue">対象ブックが開いている時に対象ブックを閉じるプログラムをご紹介</span></strong>します。<br>プログラムは下記の通りです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ブックAを閉じているか確認()</p><p></p><p>Dim <span class="bold-red">CloseBook</span> As Workbook, Flag As Boolean</p><p>Flag = False</p><p><br>For Each <span class="bold-red">CloseBook</span> In Workbooks</p><p>If <span class="bold-red">CloseBook</span>.Name = &#8220;ブックA.xlsx&#8221; Then<br>Flag = True<br>End If</p><p>Next</p><p></p><p>If Flag = True Then<br>Workbooks(&#8220;ブックA.xlsx&#8221;).Close<br>End If</p><p></p><p>End Sub</p></blockquote>



<p>内容として、「<strong>For Each　<span class="bold-red">変数</span>　In Workbooks</strong>」で現在開いているブックを変数に繰り返し格納していきます。<br>そして変数に<strong><span class="marker-under-blue">格納したブックと対象ブック名が等しければ「Flag」が「True」</span></strong>になり<br><strong><span class="marker-under-blue">「True」の場合は対象ブックを閉じる</span></strong>といった仕組みです。</p>



<p>今回はこの動作を応用して指定文字の一部でも等しい場合は対象ブックを閉じたいと思います。</p>



<h2 class="wp-block-heading"><span id="toc5">&#x2b1b;︎文字の一部を含むブックが開いてあるか確認して、開いていれば閉じる処理をする</span></h2>



<p>では本題に入ります。<br>内容としては<strong><span class="marker-under">対象の文字の一部に対し、現在開いてあるブックを照らし合わせて<br>開いているか確認し、開いてあれば閉じる</span></strong>といった内容となってます。</p>



<p>通常の処理と異なるのは<strong><span class="bold-red"><span class="marker-under">「文字の一部」</span></span></strong>という面です。<br>その際に使用する機能は<strong><span class="marker-under-red">「ワイルドカード」と呼ばれる「<span class="bold-green">&#x2733;︎</span>」</span></strong>となります。</p>



<p>では内容を紹介します。<br>通常では先ほどの「If CloseBook.Name = &#8220;ブックA.xlsx&#8221; 」のように「＝」で<br>対象ブックか判別していましたが、今回は<strong><span class="marker-under-blue">「<span class="bold-blue">Like</span>」を使用して文字列を比較</span></strong>します。</p>



<p>そして「<span class="bold-blue">Like</span>」と「<span class="bold-green">&#x2733;︎</span><span class="bold-red">対象の文字の一部</span><span class="bold-green">&#x2733;︎</span>」を組み合わせて、対象の文字が含まれているか確認しています。<br>プログラムはこのようになります。</p>



<pre class="wp-block-verse">If 変数.Name <span class="bold-blue">Like</span> "<span class="bold-green">*</span><em><span class="bold-red">対象としたい文字<span class="bold-green">*</span></span></em>" Then
Flag = True
End If</pre>



<p>これにより、<strong><span class="marker-under">開いているブック名に対象としたい文字が含まれていれば変数「Flag」が「True」となります。</span></strong></p>



<p>では見本を見ていきましょう。<br>今回は「<span class="bold-red">A</span>」という文字を含んであるブックを開いているか確認して<br>開いてある場合は閉じて見てみましょう。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 対象ブックを閉じているか確認して開いてあれば閉じる()</p><p></p><p>Dim CloseBook As Workbook, Flag As Boolean</p><p></p><p>For Each CloseBook In Workbooks<br>Flag = False</p><p></p><p>If CloseBook.Name <span class="bold-blue">Like</span> &#8220;<span class="bold-green">*</span><em><span class="bold-red">A</span><span class="bold-green">*</span></em>&#8221; Then<br>Flag = True<br>End If</p><p>If Flag = True Then<br>Workbooks(CloseBook.Name).Close<br>End If</p><p>Next</p><p></p><p>End Sub</p></blockquote>



<p>では実行すればどのようになるか説明します。<br>たとえば「A-1」「A-2」「A-3」「B-1」「B-2」「B-3」「C-1」「C-2」「C-3」<br>というブックを開いていたとします。</p>



<p>今回はブック名に「<span class="bold-red">A</span>」がつくブックを閉じるので<br><span class="marker-under"><strong>「A」を含む「A-1」「A-2」「A-3」のブックを対象とし、閉じるプログラムになります</strong></span>。</p>



<h2 class="wp-block-heading"><span id="toc6">&#x2b1b;︎ワイルドカードの応用方法</span></h2>



<p>これまでは指定の文字を含むブックが開いてあるか確認し、<br>開いてあればブックを閉じていました。</p>



<p>例えば「<span class="bold-red">A</span>」を含むブックを閉じたければ「<span class="bold-green">&#x2733;︎</span><span class="bold-red">A</span><span class="bold-green">&#x2733;︎</span>」の条件で開いてあるか確認してましたね。<br>しかし場合によっては「○○○<span class="bold-red">A</span>×××」というファイル名の形式があった場合、○○○の部分は対象から<br>外したい場合などが存在します。</p>



<p>その場合は「<span class="bold-green">&#x2733;︎</span>」の位置を変える必要があります。</p>



<p>先程の例で説明すると「○○○A×××」の「○○○A」までは固定で「×」の部分は全対象としたい場合、<br>「<span class="bold-red">A</span><span class="bold-green">&#x2733;︎</span>」を条件とします。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 対象ブックを閉じているか確認して開いてあれば閉じる()</p><p>Dim CloseBook As Workbook, Flag As Boolean</p><p>For Each CloseBook In Workbooks<br>Flag = False</p><p>If CloseBook.Name Like &#8220;<span class="bold-red">A</span><span class="bold-green">*</span>&#8221; Then<br>Flag = True<br>End If</p><p>If Flag = True Then<br>Workbooks(CloseBook.Name).Close<br>End If</p><p>Next</p><p>End Sub</p></blockquote>



<p>反対に「○○○A×××」の「A×××」までは固定で「○」の部分を全対象とする場合は<br>「<span class="bold-green">&#x2733;︎</span><span class="bold-red">A</span>」となります。</p>



<p>「<span class="bold-green">&#x2733;︎（ワイルドカード）</span>」については下記記事でまとめてますのでぜひ参考にしてみて下さい。</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90%ef%bc%88%e3%82%a2%e3%82%b9%e3%82%bf%e3%83%aa%e3%82%b9%e3%82%af%ef%bc%89%e3%81%ae%e7%bd%ae%e6%8f%9b%e3%80%91%e3%81%86%e3%81%be%e3%81%8f%e3%81%84%e3%81%8b%e3%81%aa%e3%81%84%e5%8e%9f%e5%9b%a0/">【*（アスタリスク）の置換】うまくいかない原因と対処法！＊ワイルドカードを無視 ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p></p>



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



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



<p><a href="https://learn.microsoft.com/ja-jp/office/vba/api/excel.workbook.close">Workbook.Close メソッド (Excel) | Microsoft Learn</a></p>



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



<p>いかがだったでしょうか。<br>指定した文字を含むブックを閉じる際にはとても楽になる知識です。</p>



<p>例えば日付でファイル名を管理してファイル開く、閉じるなどの<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%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e6%96%87%e5%ad%97%e3%81%ae%e4%b8%80%e9%83%a8%e3%82%92%e5%90%ab%e3%82%80%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3387</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%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92%e9%96%89%e3%81%98%e3%81%a6%e3%81%84%e3%82%8b%e3%81%8b%e7%a2%ba%e8%aa%8d%e3%81%97%e3%81%a6%e3%80%81%e9%96%89/?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%2583%2596%25e3%2583%2583%25e3%2582%25af%25e3%2582%2592%25e9%2596%2589%25e3%2581%2598%25e3%2581%25a6%25e3%2581%2584%25e3%2582%258b%25e3%2581%258b%25e7%25a2%25ba%25e8%25aa%258d%25e3%2581%2597%25e3%2581%25a6%25e3%2580%2581%25e9%2596%2589</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92%e9%96%89%e3%81%98%e3%81%a6%e3%81%84%e3%82%8b%e3%81%8b%e7%a2%ba%e8%aa%8d%e3%81%97%e3%81%a6%e3%80%81%e9%96%89/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Mon, 18 Jul 2022 13:10:08 +0000</pubDate>
				<category><![CDATA[ブック操作]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[BOOK]]></category>
		<category><![CDATA[閉じる]]></category>
		<category><![CDATA[閉じているか確認]]></category>
		<category><![CDATA[close]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=3373</guid>

					<description><![CDATA[ブックを閉じる機能に「Close」という機能があります。例えばブックを経由して入力・出力する際によく用いられる機能です。 しかし複数のファイルを開いて閉じる処理する場合に、既に閉じてあるブックを再度閉じようとするとエラー [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p></p>



<p>ブックを閉じる機能に「Close」という機能があります。<br>例えばブックを経由して入力・出力する際によく用いられる機能です。</p>



<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-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">&#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></ol></li><li><a href="#toc8" tabindex="0">&#x2b1b;︎公式の説明</a></li><li><a href="#toc9" tabindex="0">&#x2b1b;︎まとめ</a></li></ol>
    </div>
  </div>

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



<p><span class="bold-red">赤文字</span>の対象ブック名を打ち換えて使用してください。</p>



<pre class="wp-block-verse">Sub ブックAを閉じているか確認()
Dim CloseBook As Workbook, Flag As Boolean
Flag = False
　
For Each CloseBook In Workbooks
If CloseBook.Name = "<span class="bold-red">対象ブック名</span>.xlsx" Then
Flag = True
End If
Next
　
If Flag = True Then
Workbooks("<span class="bold-red">対象ブック名</span>.xlsx").Close
Else
MsgBox "対象ブックは閉じています"
End If
　
End Sub</pre>



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



<p>・ブックが閉じてあるか確認して、閉じていなければ閉じることができる<br>・閉じている場合の処理方法を設定できる</p>



<h2 class="wp-block-heading"><span id="toc3">■知っておきたい知識</span></h2>



<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-16%e3%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92%e9%96%8b%e3%81%8f%e3%83%bb%e4%bd%9c%e6%88%90%e3%83%bb%e5%90%8d%e5%89%8d%e3%81%ae%e5%a4%89/">【マクロVBA知識 16】ブックを開く・作成・名前の変更・フォルダの移動・保存・閉じる ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>・「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/">【マクロVBA知識 9】If …Thenで条件分岐・判別をする(○○なら△△)処理パターンの複数化 ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<h2 class="wp-block-heading"><span id="toc4">&#x2b1b;︎ブックが閉じてあるか確認する</span></h2>



<p>では実際に<strong><span class="marker-under">ブックが閉じてあるか確認するプログラムを説明</span></strong>したいと思います。<br>まずは下図の見本をご覧ください。</p>



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



<p><strong><span class="marker-under-red">「<span class="bold-red">ブックA</span>」</span></strong>というファイルを用意しました。<br>今回はこの「ブックA」が閉じてあるか確認してみようと思います。</p>



<p>使用する機能は<strong><span class="marker-under-blue">「For Each」の繰り返し動作</span></strong>と<strong><span class="marker-under-blue">「true・False」</span></strong>です。<br>ではプログラムを見ていきましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ブックAを閉じているか確認()</p><p>Dim CloseBook As Workbook, Flag As Boolean</p><p>Flag = False</p><p>　<br>For Each CloseBook In Workbooks</p><p>If CloseBook.Name = &#8220;<strong><span class="bold-red">ブックA.xlsx</span></strong>&#8221; Then<br>Flag = True<br>End If</p><p>Next</p><p>　</p><p>End Sub</p></blockquote>



<p>では解説です。<br><strong><span class="marker-under">「For Each 変数 Workbooks」ですでに開いてあるブックを繰り返し変数に格納</span></strong>します。<br>見本では変数を「CloseBook」としてますが、可能な文字であれば何でも構いません。</p>



<p>例えば「ブックA」「ブックB」「ブックC」を開いていると初めにブックAを変数に格納して<br>nextで「ブックB」と続いていきます。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="240" src="https://dokugakuexcel.com/wp-content/uploads/2022/07/image-30-1024x240.png" alt="" class="wp-image-3375" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/07/image-30-1024x240.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2022/07/image-30-300x70.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/07/image-30-768x180.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/07/image-30.png 1183w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>そして<strong><span class="marker-under">全てのブックを変数に格納し終えたら繰り返しを終了</span></strong>します。</p>



<p>この繰り返し動作の中にIfで対象のシートの名前か判断をします。<br><strong><span class="marker-under">対象の名前と変数のブック名が等しい場合は変数「Flag」に「true」を格納</span></strong>します。</p>



<p>初めに変数「Flag」には「False」を格納しているので繰り返し変数のブックの中に<br><strong><span class="marker-under">対象のブックがなければ「False」のまま</span></strong>という仕組みです。<br>つまり、<strong><span class="marker-under">既にブックが閉じて有れば変数「Flag」は「False」</span></strong>ということになります。</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>早速プログラムを紹介します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ブックAを閉じているか確認()</p><p>Dim CloseBook As Workbook, Flag As Boolean</p><p>Flag = False</p><p>　<br>For Each CloseBook In Workbooks</p><p>If CloseBook.Name = &#8220;ブックA.xlsx&#8221; Then<br>Flag = True<br>End If</p><p>Next</p><p>　</p><p>If Flag = True Then<br>Workbooks(&#8220;ブックA.xlsx&#8221;).Close<br>End If</p><p>　</p><p>End Sub</p></blockquote>



<p>では解説に移ります。<br><strong><span class="marker-under">対象のブックが閉じてあれば変数「Flag」が「true」</span></strong>というのは先ほどの説明しました。<br>こちらをさらにIfで条件分岐させます。</p>



<p>見本の<strong><span class="marker-under">プログラムでは変数「True」だと「ブックA」を閉じるようにしています</span></strong>。</p>



<p>これでブックが閉じて有れば何もせずに、閉じてない場合だけ、対象のブックを閉じるプログラムの完成です。</p>



<h3 class="wp-block-heading"><span id="toc7">・対象ブックが閉じてあった場合の処理方法を追加</span></h3>



<p>ここからは補足になりますが、「IF」の「Ease」を使用すればブックが閉じてあった時の<br>処理方法も設定出来ます。</p>



<p>見本で先ほどのプログラムに<strong><span class="marker-under">ブックAが閉じてあった場合には「対象ブックは閉じています」<br>というメッセージボックスを表示するプログラム</span></strong>を作成してみましょう。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ブックAを閉じているか確認()</p><p>Dim CloseBook As Workbook, Flag As Boolean</p><p>Flag = False</p><p>　<br>For Each CloseBook In Workbooks</p><p>If CloseBook.Name = &#8220;ブックA.xlsx&#8221; Then<br>Flag = True<br>End If</p><p>Next</p><p>　</p><p>If Flag = True Then<br>Workbooks(&#8220;ブックA.xlsx&#8221;).Close<br>Else<br>MsgBox &#8220;対象ブックは閉じています&#8221;<br>End If</p><p>　</p><p>End Sub</p></blockquote>



<p>これで<strong><span class="marker-under">対象ブックが閉じてなければ対象ブックを開き、閉じてあれば「対象ブックは閉じています」というメッセージボックスを表示させることができます</span></strong>。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="287" height="237" src="https://dokugakuexcel.com/wp-content/uploads/2022/07/image-31.png" alt="" class="wp-image-3376"/></figure>



<p>今回はメッセージボックスを表示する内容でしたが、用途に合わせて処理方法を追加してみてください。</p>



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



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



<p><a href="https://learn.microsoft.com/ja-jp/office/vba/api/excel.workbook.close">Workbook.Close メソッド (Excel) | Microsoft Learn</a></p>



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



<p>いかがだったでしょうか。<br>内容としては「For Each」の繰り返し動作と「true・False」を活用して<br>対象ブックが閉じてあるか確認する内容でした。</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%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92%e9%96%89%e3%81%98%e3%81%a6%e3%81%84%e3%82%8b%e3%81%8b%e7%a2%ba%e8%aa%8d%e3%81%97%e3%81%a6%e3%80%81%e9%96%89/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3373</post-id>	</item>
		<item>
		<title>【マクロVBA】ブックを開いているか確認し、開いていなければ開く（Open)開いてあればアクティブに</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92%e9%96%8b%e3%81%84%e3%81%a6%e3%81%84%e3%82%8b%e3%81%8b%e7%a2%ba%e8%aa%8d%e3%81%97%e3%80%81%e9%96%8b%e3%81%84/?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%2583%2596%25e3%2583%2583%25e3%2582%25af%25e3%2582%2592%25e9%2596%258b%25e3%2581%2584%25e3%2581%25a6%25e3%2581%2584%25e3%2582%258b%25e3%2581%258b%25e7%25a2%25ba%25e8%25aa%258d%25e3%2581%2597%25e3%2580%2581%25e9%2596%258b%25e3%2581%2584</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92%e9%96%8b%e3%81%84%e3%81%a6%e3%81%84%e3%82%8b%e3%81%8b%e7%a2%ba%e8%aa%8d%e3%81%97%e3%80%81%e9%96%8b%e3%81%84/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Mon, 18 Jul 2022 12:46:49 +0000</pubDate>
				<category><![CDATA[ブック操作]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[ブック]]></category>
		<category><![CDATA[BOOK]]></category>
		<category><![CDATA[開いているか]]></category>
		<category><![CDATA[アクティブ]]></category>
		<category><![CDATA[ActivE]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=3368</guid>

					<description><![CDATA[ブックを開く機能に「Open」という機能があります。ブックを経由して入力・出力する際によく用いられる機能です。 しかし、複数のファイルを開いて処理する場合に既に開いてあるブックを再度開こうとすると、それまでの入力した値が [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>ブックを開く機能に「Open」という機能があります。<br>ブックを経由して入力・出力する際によく用いられる機能です。</p>



<p>しかし、複数のファイルを開いて処理する場合に既に開いてあるブックを再度開こうとすると、それまでの入力した値が上書きされてしまったりしてしまいます。</p>



<p>そこで今回は<span class="marker-under"><strong>指定したブックが開いてあれば、そのブックをアクティブにして<br>開いていなければブックを開く方法を紹介</strong></span>したいとおもいます。</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">&#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></ol></li><li><a href="#toc8" tabindex="0">&#x2b1b;︎公式の説明</a></li><li><a href="#toc9" tabindex="0">&#x2b1b;︎まとめ</a></li></ol>
    </div>
  </div>

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



<p><span class="bold-red">赤字</span>の対象ブック名と<span class="bold-blue">青文字</span>の対象ファイルパスを打ち換えて使用してください</p>



<pre class="wp-block-verse">Sub ブックAを開いているか確認()
Dim OpenBook As Workbook, Flag As Boolean
Flag = False
　
For Each OpenBook In Workbooks
If OpenBook.Name = "<span class="bold-red">対象ブック名</span>.xlsx" Then
Flag = True
End If
Next
　
If Flag = True Then
Workbooks("<span class="bold-red">対象ブック名</span>").Activate
Else
Workbooks.Open "<span class="bold-blue">対象ファイルパス</span>\<span class="bold-red">対象ブック名</span>.xlsx"
End If
　
End Sub</pre>



<p></p>



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



<p>・ブックが開いてあるか確認して、開いていなければ開くことができるようになる。<br>・開いている場合の処理方法を設定できる</p>



<h2 class="wp-block-heading"><span id="toc3">■知っておきたい知識</span></h2>



<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-16%e3%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92%e9%96%8b%e3%81%8f%e3%83%bb%e4%bd%9c%e6%88%90%e3%83%bb%e5%90%8d%e5%89%8d%e3%81%ae%e5%a4%89/">【マクロVBA知識 16】ブックを開く・作成・名前の変更・フォルダの移動・保存・閉じる ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>・「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/">【マクロVBA知識 9】If …Thenで条件分岐・判別をする(○○なら△△)処理パターンの複数化 ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<h2 class="wp-block-heading"><span id="toc4">&#x2b1b;︎ブックが開いてあるか確認する</span></h2>



<p>では実際にブックが開いてあるか説明したいと思います。<br>まずは下図の見本をご覧ください。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="724" height="284" src="https://dokugakuexcel.com/wp-content/uploads/2022/07/image-27.png" alt="" class="wp-image-3369" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/07/image-27.png 724w, https://dokugakuexcel.com/wp-content/uploads/2022/07/image-27-300x118.png 300w" sizes="(max-width: 724px) 100vw, 724px" /></figure>



<p><strong><span class="marker-under-red">「ブックA」</span></strong>というファイルを用意しました。<br>今回はこの<strong><span class="marker-under">「ブックA」が開いてあるか確認してみようと思います</span></strong>。</p>



<p>使用する機能は<strong><span class="marker-under">「For Each」の繰り返し動作</span></strong>と<strong><span class="marker-under">「true・False」</span></strong>です。<br>ではプログラムを見ていきましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ブックAを開いているか確認()</p><p>Dim OpenBook As Workbook, Flag As Boolean</p><p>Flag = False</p><p>　<br>For Each OpenBook In Workbooks&#8217;開いているブックの格納繰り返し</p><p>If OpenBook.Name = &#8220;ブックA.xlsx&#8221; Then<br>Flag = True<br>End If</p><p>Next</p><p>　</p><p>End Sub</p></blockquote>



<p>では解説です。<br><strong><span class="marker-under">「For Each 変数 Workbooks」で開いてるブックを繰り返し変数に格納</span></strong>します。<br>見本では変数を「OpenBook」としてますが、可能な文字であれば何でも構いません。</p>



<p>例えば「ブックA」「ブックB」「ブックC」を開いていると初めにブックAを変数に格納して<br>nextで次の繰り返しになった際には「ブックB」と続いていきます。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="240" src="https://dokugakuexcel.com/wp-content/uploads/2022/07/image-28-1024x240.png" alt="" class="wp-image-3370" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/07/image-28-1024x240.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2022/07/image-28-300x70.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/07/image-28-768x180.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/07/image-28.png 1183w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>そして<strong><span class="marker-under">全てのブックを変数に格納し終えたら繰り返しを終了</span></strong>します。</p>



<p>この繰り返し動作の中にIfで対象のシートの名前か判断をします。<br>対象の名前と変数のブック名が等しい場合は<strong><span class="marker-under">変数「Flag」に「true」を格納</span></strong>します。</p>



<p>初めに変数「Flag」には「False」を格納しているので繰り返し開いたブックの中に<br><strong><span class="marker-under">対象のブックがなければ「False」のままという仕組み</span></strong>です。<br>つまり、<strong><span class="marker-under">既にブックが開いて有れば変数「Flag」は「true」</span></strong>ということです。</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>早速プログラムを紹介します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ブックAを開いているか確認()</p><p>Dim OpenBook As Workbook, Flag As Boolean</p><p>Flag = False</p><p>　<br>For Each OpenBook In Workbooks</p><p>If OpenBook.Name = &#8220;ブックA.xlsx&#8221; Then<br>Flag = True<br>End If</p><p>Next</p><p>　</p><p>If Flag = False Then<br>Workbooks.Open &#8220;C:\Users\ABC\Desktop\ブックA.xlsx&#8221;<br>End If</p><p>　</p><p>End Sub</p></blockquote>



<p>では解説に移ります。<br>対象のブックが<strong><span class="marker-under">開いてあれば変数「Flag」が「true」</span></strong>というのは先ほどの説明しました。<br>こちらをさらにIfで条件分岐させます。</p>



<p>見本のプログラムでは<strong><span class="marker-under">変数「Flag」が「False」だと「ブックA」を開く</span></strong>ようにしています。</p>



<p>これでブックが開いて有れば何もせずに、開いてない場合だけ、対象のブックを開くプログラムの完成です。</p>



<h3 class="wp-block-heading"><span id="toc7">・対象ブックが開いてあった場合の処理方法を追加</span></h3>



<p>ここからは補足になりますが、「IF」の「Ease」を使用すれば<strong><span class="marker-under">ブックが開いてあった時の処理方法も設定</span></strong>出来ます。</p>



<p>見本で先ほどのプログラムにブックAが開いてあった場合にはその<strong><span class="marker-under-red">ブックをアクティブにする</span></strong>というプログラムを作成してみましょう。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ブックAを開いているか確認()</p><p>Dim OpenBook As Workbook, Flag As Boolean</p><p>Flag = False</p><p>　<br>For Each OpenBook In Workbooks</p><p>If OpenBook.Name = &#8220;ブックA.xlsx&#8221; Then<br>Flag = True<br>End If</p><p>Next</p><p>　</p><p>If Flag = True Then<br><strong><span class="marker-under-red">Workbooks(&#8220;ブックA&#8221;).Activate</span></strong><br>Else<br>Workbooks.Open &#8220;C:\Users\ABC\Desktop\ブックA.xlsx&#8221;<br>End If</p><p>　</p><p>End Sub</p></blockquote>



<p>これで<strong><span class="marker-under">対象ブックが開いてなければ対象ブックを開き、開いてあれば対象ブックをアクティブ</span></strong>にすることができます。<br>今回はアクティブにする内容でしたが、用途に合わせて処理方法を追加してみてください。</p>



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



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



<p><a href="https://learn.microsoft.com/ja-jp/office/vba/api/excel.workbooks.open">Workbooks.Open メソッド (Excel) | Microsoft Learn</a></p>



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



<p>いかがだったでしょうか。<br>内容としては「For Each」の繰り返し動作と「true・False」を活用して<br>対象ブックが開いてあるか確認する内容でした。</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%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92%e9%96%8b%e3%81%84%e3%81%a6%e3%81%84%e3%82%8b%e3%81%8b%e7%a2%ba%e8%aa%8d%e3%81%97%e3%80%81%e9%96%8b%e3%81%84/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3368</post-id>	</item>
		<item>
		<title>【マクロVBA】Book操作総まとめ!ブックを開く・作成・名前の変更・フォルダの移動・保存・閉じる</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-16%e3%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92%e9%96%8b%e3%81%8f%e3%83%bb%e4%bd%9c%e6%88%90%e3%83%bb%e5%90%8d%e5%89%8d%e3%81%ae%e5%a4%89/?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-16%25e3%2580%2591%25e3%2583%2596%25e3%2583%2583%25e3%2582%25af%25e3%2582%2592%25e9%2596%258b%25e3%2581%258f%25e3%2583%25bb%25e4%25bd%259c%25e6%2588%2590%25e3%2583%25bb%25e5%2590%258d%25e5%2589%258d%25e3%2581%25ae%25e5%25a4%2589</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-16%e3%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92%e9%96%8b%e3%81%8f%e3%83%bb%e4%bd%9c%e6%88%90%e3%83%bb%e5%90%8d%e5%89%8d%e3%81%ae%e5%a4%89/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Sun, 01 Aug 2021 11:41:50 +0000</pubDate>
				<category><![CDATA[ブック操作]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[ブック]]></category>
		<category><![CDATA[開く]]></category>
		<category><![CDATA[作成]]></category>
		<category><![CDATA[名前]]></category>
		<category><![CDATA[移動]]></category>
		<category><![CDATA[保存]]></category>
		<category><![CDATA[閉じる]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=979</guid>

					<description><![CDATA[ブックを操作する中で様々な操作方法があります。ブックのアクティブについては過去の記事で説明しています。☟ 【VBA知識 12】別のシートをアクティブ・選択する方法について ► 独学エクセル塾 (dokugakuexcel [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>ブックを操作する中で様々な操作方法があります。<br>ブックのアクティブについては過去の記事で説明しています。☟</p>



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



<p>今回はブック操作の中でも<strong><span class="marker-under-red">ブックを開く・ブックの作成・</span></strong></p>



<p><strong><span class="marker-under-red">ブックの名前の変更・ブックを閉じる</span></strong>操作について、ご紹介します。</p>



<p><br>ブックをアクティブにする操作に加え、今回の記事を身につけると</p>



<p><strong><span class="marker-under">ブック関係の操作は網羅</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-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><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">■ブックの作成を行う</a></li><li><a href="#toc5" tabindex="0">■ブックに名前を付ける</a></li><li><a href="#toc6" tabindex="0">■フォルダに入っているブックを別フォルダに移動させる</a></li><li><a href="#toc7" tabindex="0">■ブックを保存する</a></li><li><a href="#toc8" tabindex="0">■ブックを閉じる</a></li><li><a href="#toc9" tabindex="0">&#x2b1b;︎公式の説明</a></li><li><a href="#toc10" tabindex="0">■まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">■ブックを開く</span></h2>



<p></p>



<h3 class="wp-block-heading"><span id="toc2">・ファイル名を直接入力して開く</span></h3>



<p>まず、<strong><span class="marker-under">ブックを開く操作</span></strong>について説明します。</p>



<p>ブックを開く際には下記のようなプログラムになります</p>



<p><strong><span class="fz-20px">Workbooks.Open &#8220;ブックのフルパス&#8221;</span></strong></p>



<p>フルパスの表示方法についてはファイルのプロパティからも拾えるのですが<br><strong><span class="marker-under-blue">クイックアクセスツールバー</span></strong>に追加しておくと、とても便利です</p>



<p></p>



<p>クイックアクセスツールバーの追加については<br><strong>「ファイル」→「オプション」→「クイックアクセスツールバー」</strong>を選択し<br>コマンドの選択を<strong>「リボンにないコマンド」</strong>にします。<br>そこに<strong>「ドキュメントの場所」</strong>があるので選択して<strong>「追加」</strong>をして<strong>「OK」</strong>で追加されます。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="576" height="422" src="https://dokugakuexcel.com/wp-content/uploads/2021/08/image.png" alt="" class="wp-image-980" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/08/image.png 576w, https://dokugakuexcel.com/wp-content/uploads/2021/08/image-300x220.png 300w" sizes="(max-width: 576px) 100vw, 576px" /></figure>



<p></p>



<p>ちなみに<strong><span class="marker-under">見本ブック</span></strong>というものを作成しました。<br>そちらはCドライブに直接保存したのですがこのようになります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="717" height="85" src="https://dokugakuexcel.com/wp-content/uploads/2021/08/image-1.png" alt="" class="wp-image-981" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/08/image-1.png 717w, https://dokugakuexcel.com/wp-content/uploads/2021/08/image-1-300x36.png 300w" sizes="(max-width: 717px) 100vw, 717px" /></figure>



<p>クイックアクセスツールバーにドキュメントの場所が表示されていますね。<br>ちなみに見本ブックは<strong><span class="marker-under">「<span class="bold-red">C:\見本ブック.xlsm</span>」</span></strong>のようになっています。</p>



<p>ではこちらをVBAを使用して開いてみましょう。</p>



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



<figure class="wp-block-image size-full"><img decoding="async" width="318" height="95" src="https://dokugakuexcel.com/wp-content/uploads/2021/08/image-2.png" alt="" class="wp-image-982" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/08/image-2.png 318w, https://dokugakuexcel.com/wp-content/uploads/2021/08/image-2-300x90.png 300w" sizes="(max-width: 318px) 100vw, 318px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ブックを開く()</p><p>Workbooks.Open &#8220;<span class="bold-red">C:\見本ブック.xlsm</span>&#8220;</p><p>End Sub</p></blockquote>



<p>こちらで見本ブックを開いてくれます。</p>



<p></p>



<h3 class="wp-block-heading"><span id="toc3">・変数のブック名を開く</span></h3>



<p></p>



<p>今度は<strong><span class="marker-under">ブック名を変数に格納してある状態でブックを開いてみましょう。</span></strong><br>プログラムはこのようになります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="265" height="148" src="https://dokugakuexcel.com/wp-content/uploads/2021/08/image-3.png" alt="" class="wp-image-983" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/08/image-3.png 265w, https://dokugakuexcel.com/wp-content/uploads/2021/08/image-3-120x68.png 120w, https://dokugakuexcel.com/wp-content/uploads/2021/08/image-3-160x90.png 160w" sizes="(max-width: 265px) 100vw, 265px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 変数のブックを開く()</p><p>Dim Bookname As String</p><p>Bookname = &#8220;C:\見本ブック.xlsm&#8221;</p><p>Workbooks.Open Bookname</p><p>End Sub</p></blockquote>



<p></p>



<p>これにより変数名のブックを開くことができます。<br>ファイル1、ファイル2とファイル名の番号が変わって、各ファイルに書き込むときには変数を使用したほうが楽ですね。</p>



<p></p>



<h2 class="wp-block-heading"><span id="toc4">■ブックの作成を行う</span></h2>



<p></p>



<p>今度は<strong><span class="marker-under">ブックの作成</span></strong>についてです。<br>こちらはデータの集計結果を別ファイルに作成し、出力するときなどに使えそうですね。</p>



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



<p><strong><span class="fz-20px">Workbooks.Add</span></strong></p>



<p>これだけです。<br>一応作成したプログラムを載せておきます。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="249" height="96" src="https://dokugakuexcel.com/wp-content/uploads/2021/08/image-4.png" alt="" class="wp-image-984"/></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 新しいブックを作成する()</p><p>Workbooks.Add</p><p>End Sub</p></blockquote>



<p>実行すると新しいブックの「Book1」が作成されました。</p>



<p></p>



<h2 class="wp-block-heading"><span id="toc5">■ブックに名前を付ける</span></h2>



<p>先ほどばブックを作成しましたが<br>今度は<strong><span class="marker-under">ブックに名前を付けてみましょう</span></strong>。</p>



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



<p><strong><span class="fz-20px">ActiveWorkbook.SaveAs Filename:=&#8221;<span class="bold-red">パス+ファイル名+.xlsx</span>&#8220;</span></strong></p>



<p>パスとファイル名は保存したい場所・ファイル名を入力してください。<br></p>



<p>ちなみに対象は「ActiveWorkbook」にしていますが、変数でも構いません<br>見本プログラムを下記にのせておきます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ブックに名前を付けて保存()</p><p>Dim Bookname As Workbook</p><p>Set Bookname = ActiveWorkbook</p><p>Bookname.SaveAs Filename:=&#8221;<span class="bold-red">パス+ファイル名+.xlsx</span>&#8220;</p><p>End Sub</p></blockquote>



<p></p>



<p>xlsmで保存の際のエラーの対応や「txt（テキスト)」「csv」ファイルで保存する際の</p>



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



<p><a href="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%80%8c-xlsm%e3%80%8d%e3%81%ae%e6%8b%a1%e5%bc%b5%e5%ad%90%e3%81%a7%e3%83%96%e3%83%83%e3%82%af%e3%81%ae/?preview_id=2267&amp;preview_nonce=af92fc80ed&amp;preview=true&amp;_thumbnail_id=2270">【マクロVBAエラー対応】「.xlsm」の拡張子でブックの名前を付けて保存ができない対応方法 ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p></p>



<h2 class="wp-block-heading"><span id="toc6">■フォルダに入っているブックを別フォルダに移動させる</span></h2>



<p></p>



<p>では次にエクセルのファイルを<br><strong><span class="marker-under">現在入っているフォルダから別のフォルダに移動させましょう。</span></strong></p>



<p>こちらは移動ととらえるより、先ほど名前を付けたように<br><strong><span class="marker-under">パスを書き換える</span></strong>という方がイメージが付きやすいかもしれません</p>



<p>見本で<strong><span class="marker-under-red">「C:\見本フォルダ①」</span></strong>のフォルダに<strong><span class="marker-under-red">「1Book.xlsx」</span></strong>というファイルを作ってみました</p>



<figure class="wp-block-image size-full"><img decoding="async" width="618" height="141" src="https://dokugakuexcel.com/wp-content/uploads/2021/08/image-5.png" alt="" class="wp-image-985" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/08/image-5.png 618w, https://dokugakuexcel.com/wp-content/uploads/2021/08/image-5-300x68.png 300w" sizes="(max-width: 618px) 100vw, 618px" /></figure>



<p>こちらを<strong><span class="marker-under-blue">見本フォルダ②</span></strong>に入れてみましょう。<br>ちなみに見本フォルダ②は現在何も入っていません。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="630" height="157" src="https://dokugakuexcel.com/wp-content/uploads/2021/08/image-6.png" alt="" class="wp-image-986" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/08/image-6.png 630w, https://dokugakuexcel.com/wp-content/uploads/2021/08/image-6-300x75.png 300w" sizes="(max-width: 630px) 100vw, 630px" /></figure>



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



<p>Name &#8220;変更前のパス+ファイル名&#8221; As &#8220;変更前のパス+ファイル名&#8221;</p>



<p>では当てはめていきましょう<br><strong><span class="marker-under-red">&#8220;</span></strong><span class="marker-under-blue"><strong><span class="marker-under-red">変更前のパス+ファイル名&#8221;は「C:\見本フォルダ①\1Book.xlsx」</span></strong></span>になります。<span class="marker-under-blue"><strong><br>&#8220;変更後のパス+ファイル名&#8221;は「C:\見本フォルダ②\1Book.xlsx」</strong></span>になります。<br>合わせると…</p>



<figure class="wp-block-image size-full"><img decoding="async" width="536" height="94" src="https://dokugakuexcel.com/wp-content/uploads/2021/08/image-7.png" alt="" class="wp-image-987" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/08/image-7.png 536w, https://dokugakuexcel.com/wp-content/uploads/2021/08/image-7-300x53.png 300w" sizes="(max-width: 536px) 100vw, 536px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ファイルの位置の変更()</p><p>Name <strong><span class="marker-under-red">&#8220;C:\見本フォルダ①\1Book.xlsx&#8221;</span></strong> As <strong><span class="marker-under-blue">&#8220;C:\見本フォルダ②\1Book.xlsx&#8221;</span></strong></p><p>End Sub</p></blockquote>



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



<p>見本フォルダ①の方は…</p>



<figure class="wp-block-image size-full"><img decoding="async" width="625" height="121" src="https://dokugakuexcel.com/wp-content/uploads/2021/08/image-8.png" alt="" class="wp-image-988" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/08/image-8.png 625w, https://dokugakuexcel.com/wp-content/uploads/2021/08/image-8-300x58.png 300w" sizes="(max-width: 625px) 100vw, 625px" /></figure>



<p>空になりました。<br>見本フォルダ②を見てみると…</p>



<figure class="wp-block-image size-full"><img decoding="async" width="629" height="147" src="https://dokugakuexcel.com/wp-content/uploads/2021/08/image-9.png" alt="" class="wp-image-989" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/08/image-9.png 629w, https://dokugakuexcel.com/wp-content/uploads/2021/08/image-9-300x70.png 300w" sizes="(max-width: 629px) 100vw, 629px" /></figure>



<p>ファイルが移動したことがわかりますね。<br>ちなみにブックの移動は通常の動作と同様に指定ファイルは閉じた状態でないと異常が表示されます。</p>



<p></p>



<h2 class="wp-block-heading"><span id="toc7">■ブックを保存する</span></h2>



<p></p>



<p>では<strong><span class="marker-under">ブックの保存</span></strong>について見ていきましょう。<br>保存のプログラムはこのようになります。</p>



<p><strong><span class="fz-20px">Workbooks(&#8220;<span class="bold-red">ファイル名</span>&#8220;).Save</span></strong></p>



<p>ここでは<strong><span class="marker-under-red">パスなど入れずにファイル名のみ入れてください。</span></strong><br>「<span class="bold-red">Book.xlsx</span>」というファイルがあったとするとプログラムはこのようになります。</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">Book.xlsx</span>&#8220;).Save</p><p>End Sub</p></blockquote>



<p>変数を用いた場合はこちら…</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ブックの保存()</p><p>Dim Bookname As Workbook</p><p>Set Bookname = ActiveWorkbook</p><p>Bookname.Save</p><p>End Sub</p></blockquote>



<p></p>



<h2 class="wp-block-heading"><span id="toc8">■ブックを閉じる</span></h2>



<p></p>



<p>最後のブック操作は<strong><span class="marker-under">ブックを閉じる</span></strong>についてです。<br>ブックを閉じるプログラムはこのようになります。</p>



<p><strong><span class="fz-20px">Workbooks(&#8220;<span class="bold-red">ファイル名</span>&#8220;).Close</span></strong></p>



<p>ここでも保存と同様に<strong><span class="marker-under">パスなど入れずにファイル名のみ入れてください</span></strong>。<br>「<span class="bold-red">Book.xlsx</span>」というファイルがあったとするとプログラムはこのようになります。</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">Book.xlsx</span>&#8220;).Close</p><p>End Sub</p></blockquote>



<p>ちなみに変数を使用したブックを閉じる際は<br>変数.closeのみで構いません。<br>見本のプログラムも載せておきます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub ファイルを閉じる()</p><p>Dim Bookname As Workbook</p><p>Set Bookname = ActiveWorkbook</p><p>Bookname.Close</p><p>End Sub</p></blockquote>



<p></p>



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



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



<p><a href="https://learn.microsoft.com/ja-jp/office/vba/api/excel.workbooks.open">Workbooks.Open メソッド (Excel) | Microsoft Learn</a></p>



<p><a href="https://learn.microsoft.com/ja-jp/office/vba/api/excel.workbooks.add">Workbooks.Add メソッド (Excel) | Microsoft Learn</a></p>



<p><a href="https://learn.microsoft.com/ja-jp/office/vba/api/excel.workbook.saveas">Workbook.SaveAs メソッド (Excel) | Microsoft Learn</a></p>



<p><a href="https://learn.microsoft.com/ja-jp/office/vba/api/excel.workbook.save">Workbook.Save メソッド (Excel) | Microsoft Learn</a></p>



<p><a href="https://learn.microsoft.com/ja-jp/office/vba/api/excel.workbook.close">Workbook.Close メソッド (Excel) | Microsoft Learn</a></p>



<p></p>



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



<p></p>



<p>いかがだったでしょうか。<br>これでブック操作はマスターできたと思います。</p>



<p>未処理ファイルを開いて処理して処理済みフォルダに格納…<br>のようなプログラムも組めますね。</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-17%e3%80%91%e3%82%b7%e3%83%bc%e3%83%88%e3%82%92%e4%bd%9c%e6%88%90%e3%83%bb%e5%90%8d%e5%89%8d%e3%82%92%e4%bb%98%e3%81%91%e3%82%8b%e3%83%bb/">【マクロVBA知識 17】シートを作成・名前を付ける・ブック内/外へコピー・移動・削除する。 ► 独学エクセル塾 (dokugakuexcel.com)</a></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-16%e3%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92%e9%96%8b%e3%81%8f%e3%83%bb%e4%bd%9c%e6%88%90%e3%83%bb%e5%90%8d%e5%89%8d%e3%81%ae%e5%a4%89/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">979</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-13%e3%80%91%e5%88%a5%e3%81%ae%e3%83%96%e3%83%83%e3%82%af%e3%82%92%e3%82%a2%e3%82%af%e3%83%86%e3%82%a3%e3%83%96%e3%83%bb%e7%8f%be%e5%9c%a8/?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-13%25e3%2580%2591%25e5%2588%25a5%25e3%2581%25ae%25e3%2583%2596%25e3%2583%2583%25e3%2582%25af%25e3%2582%2592%25e3%2582%25a2%25e3%2582%25af%25e3%2583%2586%25e3%2582%25a3%25e3%2583%2596%25e3%2583%25bb%25e7%258f%25be%25e5%259c%25a8</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-13%e3%80%91%e5%88%a5%e3%81%ae%e3%83%96%e3%83%83%e3%82%af%e3%82%92%e3%82%a2%e3%82%af%e3%83%86%e3%82%a3%e3%83%96%e3%83%bb%e7%8f%be%e5%9c%a8/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Tue, 20 Jul 2021 12:02:21 +0000</pubDate>
				<category><![CDATA[ブック操作]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[アクティブ]]></category>
		<category><![CDATA[Activate]]></category>
		<category><![CDATA[ActivE]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[ブック]]></category>
		<category><![CDATA[BOOK]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=765</guid>

					<description><![CDATA[ほかのファイル・ブックの値を参照したいときや計算したいときは別のブックをアクティブにして数値を参照したりコピーする必要があります。 シートのアクティブ方法については別の記事でまとめてますので参考にしてみてください。 別の [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>ほかのファイル・ブックの値を参照したいときや計算したいときは<br>別のブックをアクティブにして数値を参照したりコピーする必要があります。</p>



<p>シートのアクティブ方法については別の記事でまとめてますので参考にしてみてください。</p>



<p><br>別のシートをアクティブにする内容についてはこちら☟</p>



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



<p></p>



<p><strong><span class="marker-under">ブックのアクティブ方法</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></li><li><a href="#toc4" tabindex="0">■現在のブック（実行前アクティブだったブック)を記憶してアクティブにする</a></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>まずブックをアクティブにする仕組みについて説明します。</p>



<pre class="wp-block-verse"><span class="marker-under">対象のブック名でアクティブにする方法</span>
<strong><span class="fz-20px">Workbooks("<span class="bold-red">アクティブにしたいブック名</span>").Activate</span></strong></pre>



<p></p>



<pre class="wp-block-verse"><span class="marker-under">ブックの順でアクティブにする方法</span>
<span class="fz-20px"><span class="fz-22px"><strong>Workbooks(<span class="bold-blue">左から数えてアクティブにしたいブックの番号</span>).Activate</strong></span></span></pre>



<h2 class="wp-block-heading"><span id="toc2">■ブック名を直接プログラムに入力してアクティブにする方法</span></h2>



<p>こちらが1番なじみやすい形です。</p>



<p>ブック名を直接打ち込むプログラムはこのようになります。</p>



<pre class="wp-block-verse"><strong><span class="fz-20px">Workbooks("<span class="bold-red">アクティブにしたいブック名</span>").Activate</span></strong></pre>



<p></p>



<p><span class="marker-under"><strong>「Workbooks」と.「Activate」の間にシート名を選択する</strong></span>だけです。<br>その際に<strong><span class="marker-under-red">「”」で囲う</span></strong>ことを忘れないでください。</p>



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



<p>現在は見本でVBAというファイル名を開いています。</p>



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



<p><br>ここで見本で用意した「<strong><span class="marker-under"><span class="bold-red">見本ブック</span></span></strong>」というファイルをアクティブにしてみましょう。</p>



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



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



<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">見本ブック</span>&#8220;).Activate</p><p>End Sub</p></blockquote>



<p></p>



<p>はい、これだけです。<br>それでは実行してみましょう。</p>



<p>現在は「VBA」というブックを開いているのですが実行すると下図のようになります。</p>



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



<p>画像では動きがないのでわかりにくいですが「<span class="bold-red">見本ブック</span>」がアクティブになりました。<br>この状態でセルに文字を入れたりするVBAのプログラムを入れると「見本ブック」のほうで書き込みが実行されます。</p>



<p></p>



<h2 class="wp-block-heading"><span id="toc3">■ブックの順番を指定してアクティブにする</span></h2>



<p>今度は<strong><span class="marker-under">ブック順を参考にしてアクティブにする方法</span></strong>です。<br>VBAで数個ファイルを開いて全ブック同じ処理をするときに使えますね。</p>



<p>プログラムの説明についてはこちら</p>



<pre class="wp-block-verse"><span class="fz-20px"><span class="fz-22px"><strong>Workbooks(<span class="bold-red">左から数えてアクティブにしたいブックの番号</span>).Activate</strong></span></span></pre>



<p></p>



<p>こちらも至ってシンプルです。</p>



<p>今回も同じく、VBAというファイル名を開いている状態で<br>見本で用意した<strong><span class="marker-under">「見本ブック」という2つ目のファイルをアクティブ</span></strong>にしてみましょう。</p>



<p>今回は<span class="bold-red">2つ目</span>なのでこのようになります</p>



<p><strong><span class="fz-22px">Workbooks(<span class="bold-red">2</span>).Activate</span></strong></p>



<p>ではプログラムを打ち込んでみましょう。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 順番にブックをアクティブにする()</p><p>Workbooks(<span class="bold-red">2</span>).Activate</p><p>End Sub</p></blockquote>



<p>実行してみると…</p>



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



<p><span class="bold-red">2つ目</span>の「見本ブック」がアクティブになりました。</p>



<p></p>



<h2 class="wp-block-heading"><span id="toc4">■現在のブック（実行前アクティブだったブック)を記憶してアクティブにする</span></h2>



<p>さらに今回はもう一事例紹介したいと思います。</p>



<p>ブックの移動が増えると実行前のアクティブブックに帰るとき<br>「Workbooks(&#8220;アクティブにしたいブック名&#8221;).Activate」で設定していると<br>ファイル名が変わったらエラーになってしまいます。</p>



<p>例えばですが「VBA1.01」というファイル名にしておいて<br>改定を加えて「VBA1.02」になったとします。</p>



<p><br>すると「Workbooks(&#8220;アクティブにしたいブック名&#8221;).Activate」の方法でプログラムを組んでいた場合すべて<br>「VBA1.01」から「VBA1.02」に変えなければなりません。</p>



<p>ここで対策として<strong><span class="marker-under">現在開いているブックを変数にセット</span></strong>して<br>そのファイルに戻りたいときは変数に入っているブック名をアクティブにすれば解決します。</p>



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



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 現在のブックを記憶しアクティブにする()</p><p>Dim<span class="bold-red"> MainBook</span> As Workbook</p><p>Set <span class="bold-red">MainBook</span> =<strong> <span class="bold-blue">ActiveWorkbook</span></strong></p><p>Workbooks(&#8220;見本ブック&#8221;).Activate</p><p><span class="bold-red">MainBook</span>.Activate</p><p>End Sub</p></blockquote>



<p>これにより現在開いているファイル名を「MainBook」という変数に記録し、<br>「見本ブック」をアクティブにした後でも<br>「MainBook.Activate」で初めに開いていたブックがアクティブになります。</p>



<p>この方法だとファイル名が変わっても対応できるようになります。</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/excel.workbook.activate(method)">Workbook.Activate メソッド (Excel) | Microsoft Learn</a></p>



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



<p>いかがだったでしょうか。<br>ブック経由で様々な処理ができるようになりましたね。</p>



<p>また各ブックに同じ処理ができるようになるので<br>同じ仕様ファイルに同じ処理を施す場面ではとても重宝されます。</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-13%e3%80%91%e5%88%a5%e3%81%ae%e3%83%96%e3%83%83%e3%82%af%e3%82%92%e3%82%a2%e3%82%af%e3%83%86%e3%82%a3%e3%83%96%e3%83%bb%e7%8f%be%e5%9c%a8/"></a><a href="https://dokugakuexcel.com/%e3%80%90vba%e7%9f%a5%e8%ad%98-14%e3%80%91%e6%96%87%e5%ad%97%e6%a4%9c%e7%b4%a2find%e3%81%97%e3%80%81%e5%bd%93%e3%81%a6%e3%81%af%e3%81%be%e3%82%8b%e8%a1%8c%e6%95%b0%e3%81%a8%e5%88%97%e6%95%b0/">【VBA知識 14】文字検索(Find)し、当てはまる行数と列数を変数に格納・検索結果なしエラー対応 ► 独学エクセル塾 (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-13%e3%80%91%e5%88%a5%e3%81%ae%e3%83%96%e3%83%83%e3%82%af%e3%82%92%e3%82%a2%e3%82%af%e3%83%86%e3%82%a3%e3%83%96%e3%83%bb%e7%8f%be%e5%9c%a8/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">765</post-id>	</item>
	</channel>
</rss>
