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

<channel>
	<title>エラー  |  独学エクセル塾</title>
	<atom:link href="https://dokugakuexcel.com/tag/%E3%82%A8%E3%83%A9%E3%83%BC/feed/" rel="self" type="application/rss+xml" />
	<link>https://dokugakuexcel.com</link>
	<description>初心者から中級者までシステム・関数・VBAを伝授します</description>
	<lastBuildDate>Mon, 17 Oct 2022 14:00:46 +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%e3%80%8c%e6%8c%87%e5%ae%9a%e3%81%95%e3%82%8c%e3%81%9f%e5%80%a4%e3%81%af%e5%a2%83%e7%95%8c%e3%82%92%e8%b6%85%e3%81%88%e3%81%a6%e3%81%84%e3%81%be/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e3%2580%2591%25e3%2580%258c%25e6%258c%2587%25e5%25ae%259a%25e3%2581%2595%25e3%2582%258c%25e3%2581%259f%25e5%2580%25a4%25e3%2581%25af%25e5%25a2%2583%25e7%2595%258c%25e3%2582%2592%25e8%25b6%2585%25e3%2581%2588%25e3%2581%25a6%25e3%2581%2584%25e3%2581%25be</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e3%80%8c%e6%8c%87%e5%ae%9a%e3%81%95%e3%82%8c%e3%81%9f%e5%80%a4%e3%81%af%e5%a2%83%e7%95%8c%e3%82%92%e8%b6%85%e3%81%88%e3%81%a6%e3%81%84%e3%81%be/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Wed, 28 Sep 2022 14:18:43 +0000</pubDate>
				<category><![CDATA[エラー対策]]></category>
		<category><![CDATA[マクロVBA応用・便利技]]></category>
		<category><![CDATA[エラー]]></category>
		<category><![CDATA[異常]]></category>
		<category><![CDATA[指定された値は境界を越えています]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=3544</guid>

					<description><![CDATA[エクセルのマクロVBAのプログラムを作ったことがある方は誰もが経験があるエラーですが、 皆さんも悩んでいるのではないでしょうか。プログラムを作った人は発生したエラーについて理解・把握できますが作ってない方はエラーが発生し [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>エクセルのマクロVBAのプログラムを作ったことがある方は誰もが経験があるエラーですが、</p>



<p>皆さんも悩んでいるのではないでしょうか。<br>プログラムを作った人は発生したエラーについて理解・把握できますが作ってない方はエラーが発生したらすぐに原因を理解するのは難しいです。</p>



<p>その中でも今回は<strong><span class="marker-under">「実行時エラー1004」の中の「指定された値は境界を超えています」</span></strong><br>の<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-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">&#x2b1b;︎「指定された値は境界を超えています」のエラーの原因について</a></li><li><a href="#toc2" tabindex="0">&#x2b1b;︎原因①:色を変える際のSchemeColorの指定に不備がある</a><ol><li><a href="#toc3" tabindex="0">・原因の内容</a></li><li><a href="#toc4" tabindex="0">・対策方法</a></li></ol></li><li><a href="#toc5" tabindex="0">&#x2b1b;︎原因②:保護したシートへの写真・図貼り付け</a><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">&#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-97.png" alt="" class="wp-image-3545" width="390" height="193" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-97.png 519w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-97-300x149.png 300w" sizes="(max-width: 390px) 100vw, 390px" /></figure>



<p>現在確認できる原因としては下記の通りです。</p>



<pre class="wp-block-verse"><strong><span class="fz-20px">①色を変える際のSchemeColorの指定に不備がある
②保護したシートへの写真・図の貼り付け</span></strong></pre>



<p>※確認できている原因を挙げています。<br>上記以外で発生の原因がある場合はコメントしていただけたら幸いです。</p>



<p> </p>



<p>では各原因についてみていきましょう。</p>



<h2 class="wp-block-heading"><span id="toc2">&#x2b1b;︎原因①:色を変える際のSchemeColorの指定に不備がある</span></h2>



<p></p>



<h3 class="wp-block-heading"><span id="toc3">・原因の内容</span></h3>



<p><strong><span class="marker-under">SchemeColorとはオブジェクトの配色の色を変更</span></strong>する際に使用します。<br><strong><span class="marker-under">SchemeColorは「<span class="bold-red">1から80</span>」で指定</span></strong>します。</p>



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



<pre class="wp-block-verse">Sub 図に色をつける()
ActiveSheet.Shapes("見本図").Fill.ForeColor.SchemeColor = <span class="bold-red">5</span>
End Sub</pre>



<p>見本のプログラムは「見本図」と言う名前をつけた図の<br>色をSchemeColorで変更するプログラムです。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-98.png" alt="" class="wp-image-3546" width="453" height="232" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-98.png 562w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-98-300x154.png 300w" sizes="(max-width: 453px) 100vw, 453px" /></figure>



<p>今回は「SchemeColor＝5」で指示しています。<br>では実行してみます。結果はこのようになりました。</p>



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



<p><strong><span class="marker-under">図が黄色に変化</span></strong>してますね。</p>



<p>では<strong>「SchemeColor＝<span class="bold-red">81</span>」</strong>で再度実行したいと思います。<br>プログラムはこちらです。</p>



<pre class="wp-block-verse">Sub 図に色をつける()
ActiveSheet.Shapes("見本図").Fill.ForeColor.SchemeColor = <span class="bold-red">81</span>
End Sub</pre>



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



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-100.png" alt="" class="wp-image-3548" width="370" height="183" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-100.png 519w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-100-300x149.png 300w" sizes="(max-width: 370px) 100vw, 370px" /></figure>



<p><strong><span class="marker-under">「指定された値は境界を超えています」というエラーが発生</span></strong>しました。</p>



<p>「SchemeColor」の前提条件として「1から80」となってます。<br>しかし今回は「81」と、<strong><span class="marker-under-red">条件以外の数値</span></strong>であることから<br>「指定された値は境界を超えています」というエラーが発生した仕組みになっています。</p>



<h3 class="wp-block-heading"><span id="toc4">・対策方法</span></h3>



<p>こちらの対策は単純です。<br><span class="marker-under-blue">「SchemeColor」を使用する場合は「1から80」までの数値</span>にしてください。</p>



<h2 class="wp-block-heading"><span id="toc5">&#x2b1b;︎原因②:保護したシートへの写真・図貼り付け</span></h2>



<h3 class="wp-block-heading"><span id="toc6">・原因の内容</span></h3>



<p>つぎに<strong><span class="marker-under">保護したシートへの写真・図の貼り付け時に発生するパターン</span></strong>を見ていきましょう。</p>



<p>見本のプログラムを用意しました。<br>プログラムは下記の通りです。</p>



<pre class="wp-block-verse">Sub 写真の貼り付け()

Set OBJSHAPE = ActiveSheet.Shapes.AddPicture( _
　　　　　　　　  Filename:="<span class="bold-red">C:\検証ファイル</span>\<span class="bold-blue">見本写真.jpg</span>", _
　　　　　　　　  LinkToFile:=False, _
　　　　　　　　  SaveWithDocument:=True, _
　　　　　　　　  Left:=ActiveSheet.Range("E7").Left, _
　　　　　　　　  Top:=ActiveSheet.Range("E7").Top, _
　　　　　　　　  Width:=ActiveSheet.Range("E7").Width, _
　　　　　　　　  Height:=ActiveSheet.Range("E7").Height) '貼り付け
End Sub</pre>



<p>プログラムの内容として「<span class="bold-red">Cドライブの検証ファイル</span>」というフォルダに保存してある「<span class="bold-blue">見本写真.jpg</span>」という写真を「E7」に貼り付けるプログラムになっています。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-101.png" alt="" class="wp-image-3549" width="308" height="200" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-101.png 431w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-101-300x195.png 300w" sizes="(max-width: 308px) 100vw, 308px" /></figure>



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



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-102.png" alt="" class="wp-image-3550" width="345" height="228" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-102.png 463w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-102-300x198.png 300w" sizes="(max-width: 345px) 100vw, 345px" /></figure>



<p>「E7」に写真を貼り付けれていますね。</p>



<p>では本題です。</p>



<p><strong><span class="marker-under">貼り付け先のアクティブシートに保護をかけた状態でプログラムを実行</span></strong>してみます。<br>結果はこのようになりました。</p>



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



<p>「指定された値は境界を超えています」というエラーが発生しました。</p>



<h3 class="wp-block-heading"><span id="toc7">・対策方法</span></h3>



<p>こちらは貼り付け先のシートに保護が掛かっている可能性があるので<br><strong><span class="marker-under-blue">保護を解除して、実行する必要</span></strong>があります。</p>



<p>通常通り<strong><span class="marker-under-red">「校閲」</span></strong>タブから<strong><span class="marker-under-red">「シートの保護」</span></strong>状態であるか確認する方法もありますが、<br>シートの保護をプログラムで実行している場合は<strong><span class="marker-under-blue">ActiveSheet.Unprotect</span></strong>で<br>マクロから保護の解除をする方法もあります。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="174" src="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-104-1024x174.png" alt="" class="wp-image-3552" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/09/image-104-1024x174.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-104-300x51.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-104-768x130.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/09/image-104.png 1248w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>シートの保護・解除をマクロで行う方法についてはこちらから☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%8a%b2%e3%80%91%e3%82%b7%e3%83%bc%e3%83%88%e3%81%ae%e4%bf%9d%e8%ad%b7%e3%83%bb%e8%a7%a3%e9%99%a4%e5%85%a8%e9%9b%86%ef%bc%81%e3%82%a2%e3%82%af%e3%83%86/">【マクロVBA㊲】シートの保護・解除全集！アクティブ・対象・全シートやパスワードを含めた保護・解除 ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>場面に合わせて使い分けてください。</p>



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



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



<p><a href="https://answers.microsoft.com/ja-jp/msoffice/forum/all/%E3%83%9E%E3%82%AF%E3%83%AD%E3%81%A7%E5%9B%B3/4bdc782c-8d15-4cf1-b0e4-4fb09ce70797">マクロで図形の塗りつぶしを行うと 「指定された値は境界を越えています」 のエラーになります &#8211; Microsoft コミュニティ</a></p>



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



<p>いかがだったでしょうか。<br>「指定された値は境界を超えています」というエラー名だけでは<br>なにが原因か理解しにくいですが<br>本記事を参考にして解決いただけたら嬉しいです。</p>



<p>　</p>



<p>是非参考にしてみてください。<br>それでは次回の記事でお会いしましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e3%80%8c%e6%8c%87%e5%ae%9a%e3%81%95%e3%82%8c%e3%81%9f%e5%80%a4%e3%81%af%e5%a2%83%e7%95%8c%e3%82%92%e8%b6%85%e3%81%88%e3%81%a6%e3%81%84%e3%81%be/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3544</post-id>	</item>
		<item>
		<title>【マクロVBAエラー】ブックをCloseで閉じれない「インデックスが有効範囲にありません」原因対処法</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%82%a8%e3%83%a9%e3%83%bc%e3%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92close%e3%81%a7%e9%96%89%e3%81%98%e3%82%8c%e3%81%aa%e3%81%84%e3%80%8c%e3%82%a4%e3%83%b3/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e3%2580%2591%25e3%2583%2596%25e3%2583%2583%25e3%2582%25af%25e3%2582%2592close%25e3%2581%25a7%25e9%2596%2589%25e3%2581%2598%25e3%2582%258c%25e3%2581%25aa%25e3%2581%2584%25e3%2580%258c%25e3%2582%25a4%25e3%2583%25b3</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%82%a8%e3%83%a9%e3%83%bc%e3%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92close%e3%81%a7%e9%96%89%e3%81%98%e3%82%8c%e3%81%aa%e3%81%84%e3%80%8c%e3%82%a4%e3%83%b3/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Sat, 03 Sep 2022 16:07:29 +0000</pubDate>
				<category><![CDATA[エラー対策]]></category>
		<category><![CDATA[マクロVBA応用・便利技]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[close]]></category>
		<category><![CDATA[「実行時エラー&#039;9&#039;:インデックスが有効範囲にありません」]]></category>
		<category><![CDATA[エラー]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=3380</guid>

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



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



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




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

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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<p></p>



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<p>それでは次回の記事でお会いしましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%82%a8%e3%83%a9%e3%83%bc%e3%80%91%e3%83%96%e3%83%83%e3%82%af%e3%82%92close%e3%81%a7%e9%96%89%e3%81%98%e3%82%8c%e3%81%aa%e3%81%84%e3%80%8c%e3%82%a4%e3%83%b3/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3380</post-id>	</item>
		<item>
		<title>【ERROR.TYPE関数】エラーの種類・内容を出力！エラーの判別・分別と対処法</title>
		<link>https://dokugakuexcel.com/%e3%80%90error-type%e9%96%a2%e6%95%b0%e3%80%91%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%ae%e7%a8%ae%e9%a1%9e%e3%83%bb%e5%86%85%e5%ae%b9%e3%82%92%e5%87%ba%e5%8a%9b%ef%bc%81%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%ae/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590error-type%25e9%2596%25a2%25e6%2595%25b0%25e3%2580%2591%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e3%2581%25ae%25e7%25a8%25ae%25e9%25a1%259e%25e3%2583%25bb%25e5%2586%2585%25e5%25ae%25b9%25e3%2582%2592%25e5%2587%25ba%25e5%258a%259b%25ef%25bc%2581%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e3%2581%25ae</link>
					<comments>https://dokugakuexcel.com/%e3%80%90error-type%e9%96%a2%e6%95%b0%e3%80%91%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%ae%e7%a8%ae%e9%a1%9e%e3%83%bb%e5%86%85%e5%ae%b9%e3%82%92%e5%87%ba%e5%8a%9b%ef%bc%81%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%ae/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Tue, 26 Apr 2022 12:49:53 +0000</pubDate>
				<category><![CDATA[関数]]></category>
		<category><![CDATA[エラー]]></category>
		<category><![CDATA[ERROR.TYPE関数]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=2761</guid>

					<description><![CDATA[エクセルを使用していると悩みになるのがエラーですよね。 エラーには#NULLや#DIV/0!、#VALUEなど様々なエラーが存在します。 各エラーの内容と対処法についてはこちらから☟ エラーが発生！#N/A・DIV/0! [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>エクセルを使用していると悩みになるのがエラーですよね。</p>



<p><br>エラーには#NULLや#DIV/0!、#VALUEなど様々なエラーが存在します。</p>



<p>各エラーの内容と対処法についてはこちらから☟</p>



<p><a href="https://dokugakuexcel.com/%e3%82%a8%e3%82%af%e3%82%bb%e3%83%ab%e3%82%a8%e3%83%a9%e3%83%bcn-a%e3%83%bbdiv-0%e3%83%bbvalue%e3%83%bbref%e3%83%bbname%e3%83%bbnum%e3%83%bbnull%e3%81%ae%e5%8e%9f%e5%9b%a0%e3%81%a8%e5%af%be/">エラーが発生！#N/A・DIV/0!・VALUE・REF・NAME・NUM・NULLの原因と対策 ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>そこで今回は<strong><span class="marker-under">どのようなエラーなのか判断できるERROR.TYPE関数</span></strong>についてまとめました。<br>こちらの関数を使用する事で対象のセルでどのようなエラーが発生しているかわかるようになります。<br>さらに今回はERROR.TYPE関数を活用したエラー時の対応をメッセージで<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">&#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;︎ERROR.TYPE関数を応用する</a></li><li><a href="#toc5" tabindex="0">■公式の説明</a></li><li><a href="#toc6" tabindex="0">&#x2b1b;︎まとめ</a></li></ol>
    </div>
  </div>

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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><span class="fz-20px"><strong>=ERROR.TYPE(<span class="bold-red">対象セル</span>)</strong></span></p></blockquote>



<p><span class="bold-red">対象セル</span>はエラーの種類を把握したいセルを選択します。</p>



<h2 class="wp-block-heading"><span id="toc2">&#x2b1b;︎出力結果一覧</span></h2>



<p>こちらではERROR.TYPE関数の<strong><span class="marker-under">出力結果とエラー内容を一覧</span></strong>にしています。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー内容</th><th>出力結果</th></tr></thead><tbody><tr><td>#NULL!</td><td>1</td></tr><tr><td>#DIV/0!</td><td>2</td></tr><tr><td>#VALUE!</td><td>3</td></tr><tr><td>#REF!</td><td>4</td></tr><tr><td>#VALUE!</td><td>5</td></tr><tr><td>#NUM!</td><td>6</td></tr><tr><td>#N/A</td><td>7</td></tr><tr><td>#GETTING_DATA</td><td>8</td></tr><tr><td>その他</td><td>N/A</td></tr></tbody></table></figure>



<p>上記の表の使い方として、例を紹介します。<br>関数の出力が「1」の場合は「#NULL!」のエラーを表し、<br>関数の出力が「2」の場合は「#DIV/0!」のエラーを表します。</p>



<p>では使用方法を見てみましょう。</p>



<h2 class="wp-block-heading"><span id="toc3">&#x2b1b;︎関数の使用方法</span></h2>



<p>では使用方法です。<br>引数も1つしかなく、とても簡単です。</p>



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



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



<p><span class="bold-red">B3</span>に計算式を入力し、D3にエラーの種類を出力しましょう。<br>では再度、関数の仕組みを見てみましょう。</p>



<p><strong><span class="fz-20px">=ERROR.TYPE(<span class="bold-red">対象セル</span>)</span></strong></p>



<p>ここでの対象セルはエラーを確認したい<span class="bold-red">B3</span>になりますね。<br>つまり「=ERROR.TYPE(<span class="red">B3</span>)」をD3に打ち込みます。<br>では入力した結果を見てみましょう。</p>



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



<figure class="wp-block-image size-full"><img decoding="async" width="646" height="180" src="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-89.png" alt="" class="wp-image-2772" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-89.png 646w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-89-300x84.png 300w" sizes="(max-width: 646px) 100vw, 646px" /></figure>



<p>出力結果は<span class="marker-under-blue">「#N/A」</span>となってます。<br><strong><span class="marker-under-blue">エラーでない場合は#N/Aを出力</span></strong>するようになってます。</p>



<p>ではエラーを出してみましょう。</p>



<p>　<br>B3の式を「=5/0」にしてみたいと思います。<br>エクセルで割り算を使用する際に0または空白で割ると</p>



<p><strong><span class="marker-under-red">DIV/0!のエラー</span></strong>となってしまいます。</p>



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



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



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



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



<p>D3には<strong><span class="marker-under-red">「2」</span></strong>が出力されました。<br>表を見てみると<strong><span class="marker-under-red">「#DIV/0!」は「2」</span></strong>となってますね。<br>つまり、#DIV/0!がエラーの内容である事がわかります。</p>



<p>　</p>



<p>別の例を見てみましょう。<br>B3とC3の数値をかけた値をE3に出力してみたいと思います。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="850" height="180" src="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-83.png" alt="" class="wp-image-2766" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-83.png 850w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-83-300x64.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-83-768x163.png 768w" sizes="(max-width: 850px) 100vw, 850px" /></figure>



<p>今回は数値1を「A」にしています。</p>



<p>通常では数値に文字を掛けることはできませんから<br><strong><span class="marker-under">「#VALUE!」のエラー</span></strong>になります。<br>では入力した結果を見てみましょう。<br>結果はこのようになります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="836" height="154" src="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-84.png" alt="" class="wp-image-2767" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-84.png 836w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-84-300x55.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-84-768x141.png 768w" sizes="(max-width: 836px) 100vw, 836px" /></figure>



<p>D3には<strong><span class="marker-under">「3」</span></strong>が出力されました。<br>表を見てみると<strong><span class="marker-under">「#VALUE!」は「3」</span></strong>となってますね。<br>つまり、エラーの内容が#VALUE!である事がわかります。</p>



<h2 class="wp-block-heading"><span id="toc4">&#x2b1b;︎ERROR.TYPE関数を応用する</span></h2>



<p>では応用です。<br>今回は一例で下図のファイルを紹介します。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1020" height="153" src="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-90.png" alt="" class="wp-image-2773" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-90.png 1020w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-90-300x45.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-90-768x115.png 768w" sizes="(max-width: 1020px) 100vw, 1020px" /></figure>



<p>仕組みとしてB3の数値1とC3の数値2を入力すると<br>E3に数値1と数値2を割った結果を表示するファイルになってます。</p>



<p>ここで考えられるエラーとしては先程説明で使用した例を元にすると下記の通りです</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><br>・#DIV/0!:数値2が0または空白<br>・#VALUE!:数値1.2に文字が入力されてある。</p></blockquote>



<p>では今回の仕様として#DIV/0!または#VALUE!のエラーが発生しなければ通常通り計算をおこない、</p>



<p><span class="bold-red">DIV/0!</span>であれば<strong><span class="marker-under-red">「数値2が0または空白です」</span></strong>というメッセージを、</p>



<p><span class="bold-blue">VALUE!</span>であれば<span class="marker-under-blue"><strong>「数値1・2が文字になっています」</strong></span>というメッセージを表示させたいと思います。</p>



<p>使用するのは「IFERROR関数」と「ERROR.TYPE関数」と「IF関数」です。<br>IFERROR関数についてはこちらから☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90iferror%e9%96%a2%e6%95%b0%e3%80%91%e3%82%a8%e3%82%af%e3%82%bb%e3%83%ab%e3%81%a7%e3%81%ae%e3%82%a8%e3%83%a9%e3%83%bc%e6%99%82%e3%81%ae%e5%af%be%e5%bf%9c%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/">【IFERROR関数】エクセルでのエラー時の対応について～エラーに強いファイルを作る～ ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>IF関数についてはこちらから☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90if%e9%96%a2%e6%95%b0%e3%80%91%e3%82%a8%e3%82%af%e3%82%bb%e3%83%ab%e3%81%a7%e2%97%8b%e2%97%8b%e3%81%a0%e3%81%a3%e3%81%9f%e3%82%89%e2%96%b3%e2%96%b3%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b/">【IF関数】エクセルで○○だったら△△を表示する～条件分岐を身に着ける～ ► 独学エクセル塾 (dokugakuexcel.com)</a><br>　</p>



<p>応用方法としてIFでエラーを検知した場合、メッセージを出力します。<br>IF関数の仕組みは「=IF(論理式,真の場合,偽の場合)」ですから、<br>当てはめると<strong>「=IFERROR(IF(<span class="bold-red">ERROR.TYPE(B3/C3)=2</span>,<span class="marker-under-red">&#8220;数値2が0または空白です&#8221;</span>,<span class="bold-blue">IF(ERROR.TYPE(B3/C3)=3</span>,<span class="marker-under-blue">&#8220;数値1・2が文字になっています&#8221;</span>,)),B3/C3)」</strong><br>となります。</p>



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



<figure class="wp-block-image size-full"><img decoding="async" width="1020" height="152" src="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-86.png" alt="" class="wp-image-2769" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-86.png 1020w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-86-300x45.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-86-768x114.png 768w" sizes="(max-width: 1020px) 100vw, 1020px" /></figure>



<p>計算できていますね。<br>数値2を0にすると、、、</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="156" src="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-87-1024x156.png" alt="" class="wp-image-2770" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-87-1024x156.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-87-300x46.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-87-768x117.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-87.png 1029w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>DIV/0!のエラーを検知して<strong><span class="marker-under-red">「数値2が0または空白です」</span></strong>というメッセージが表示されてます。</p>



<p>さらに数値1に文字を入れてみましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1020" height="146" src="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-88.png" alt="" class="wp-image-2771" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-88.png 1020w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-88-300x43.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-88-768x110.png 768w" sizes="(max-width: 1020px) 100vw, 1020px" /></figure>



<p>VALUE!のエラーを検知して<strong><span class="marker-under-blue">「数値1・2が文字になっています」</span></strong>というメッセージが表示されてます。<br>エクセルに詳しくない方はエラーの内容や原因がわからないと思うので<br>これなら初心者に優しいシートを作成できますね。</p>



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



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



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



<p><a href="https://support.microsoft.com/ja-jp/office/error-type-%E9%96%A2%E6%95%B0-10958677-7c8d-44f7-ae77-b9a9ee6eefaa">ERROR.TYPE 関数 (microsoft.com)</a></p>



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



<p>いかがだったでしょうか。<br>エラーの種類を出力できる関数があるのは<br>なかなか知られてませんよね。</p>



<p>今回の記事を参考にしてエラーの種類を出力し<br>システムづくり等にお役立てください</p>



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

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



<p>このエラーが発生するとプログラム自体を走らせることができなくなるので対策が必要です。</p>



<p>原因も詳しく説明してますので是非参考にしてみてください。</p>



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




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-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">■「Functionまたは変数が必要です」のエラーの原因と対策法</a></li><li><a href="#toc3" tabindex="0">■まとめ</a></li></ol>
    </div>
  </div>

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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<p>いかがだったでしょうか。<br>私もユーザーフォームを使用し始めたときに同じエラーが発生して<br>対策方法がわからず試行錯誤して判明しました。</p>



<p>現在はプログラム名の後に作成した年月日を番号で入力しているので<br>そのようなエラーは起きない＆作成した日時がわかるのでおすすめです。</p>



<p>是非参考にしてみてください。</p>



<p>それでは次回の記事でお会いしましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%82%a8%e3%83%a9%e3%83%bc%e5%af%be%e5%bf%9c%e3%80%91%e3%83%a6%e3%83%bc%e3%82%b6%e3%83%bc%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e3%81%aeshow%e3%81%a7function/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2295</post-id>	</item>
		<item>
		<title>【マクロVBAのエラー対策】エラーが発生したら指定行まで移動！終了までできるエラー処理方法について</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%81%ae%e3%82%a8%e3%83%a9%e3%83%bc%e5%af%be%e7%ad%96%e3%80%91%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%ab%e8%b2%a0%e3%81%91%e3%81%aa%e3%81%84%e3%83%97%e3%83%ad/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e3%2581%25ae%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e5%25af%25be%25e7%25ad%2596%25e3%2580%2591%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e3%2581%25ab%25e8%25b2%25a0%25e3%2581%2591%25e3%2581%25aa%25e3%2581%2584%25e3%2583%2597%25e3%2583%25ad</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%81%ae%e3%82%a8%e3%83%a9%e3%83%bc%e5%af%be%e7%ad%96%e3%80%91%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%ab%e8%b2%a0%e3%81%91%e3%81%aa%e3%81%84%e3%83%97%e3%83%ad/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Tue, 26 Oct 2021 11:33:30 +0000</pubDate>
				<category><![CDATA[エラー対策]]></category>
		<category><![CDATA[マクロVBA応用・便利技]]></category>
		<category><![CDATA[ERROR]]></category>
		<category><![CDATA[エラー]]></category>
		<category><![CDATA[異常]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=1815</guid>

					<description><![CDATA[エクセルのマクロVBAのプログラムを作ったことがある方は誰もが経験があるエラーですが、皆さんも悩んでいるのではないでしょうか。 プログラムを作った人は発生したエラーについて理解・把握できますが作ってない方はエラーが発生し [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>エクセルのマクロVBAのプログラムを作ったことがある方は誰もが経験がある<br>エラーですが、皆さんも悩んでいるのではないでしょうか。</p>



<p>プログラムを作った人は発生したエラーについて理解・把握できますが<br>作ってない方はエラーが発生したらすぐに理解するのは難しいです。</p>



<p>さらにVBAを触ったことがない人がシステムを利用してエラーが出ると<br>何を押していいかわかりません。</p>



<p>そのためにもプログラムを作成する方はエラーに対応したプログラムを<br>作成する能力を求められます。</p>



<p>ぜひ、<strong><span class="marker-under">エラーに強いプログラムを作成</span></strong>できるようにしてみてください。</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">■マクロVBAで発生するエラーとは</a></li><li><a href="#toc2" tabindex="0">■エラーの対応方法</a><ol><li><a href="#toc3" tabindex="0">・①対象範囲内でエラーが起きたら指定位置へ飛ぶ</a></li><li><a href="#toc4" tabindex="0">・②IFを使用して異常値を検出して指定位置に飛ぶ</a></li><li><a href="#toc5" tabindex="0">・③入力規則で入力データを制限する</a></li></ol></li><li><a href="#toc6" tabindex="0">&#x2b1b;︎公式の説明</a></li><li><a href="#toc7" tabindex="0">■まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">■マクロVBAで発生するエラーとは</span></h2>



<p>まず発生するエラーについて見てみましょう。<br>下図をご覧ください。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="360" height="182" src="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-64.png" alt="" class="wp-image-1816" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-64.png 360w, https://dokugakuexcel.com/wp-content/uploads/2021/10/image-64-300x152.png 300w" sizes="(max-width: 360px) 100vw, 360px" /></figure>



<p>このような異常はプログラムを作ったことがある方は見たことがあるのではないでしょうか。<br>ちなみに<strong><span class="marker-under">終了を押せばプログラムは強制終了</span></strong>します。</p>



<p><strong><span class="marker-under">デバッグを押せばエラーの原因のプログラムの位置で止まってくれます</span></strong>。<br>VBAを知らない方はデバッグを押すと、みたことのない画面が出るため困ってしまいます。</p>



<p><strong><span class="marker-under">ヘルプはマイクロソフト公式のヘルプに飛んでくれます</span></strong>。</p>



<p>今回の目的はこの画面が出ないようにプログラミングしていきます。</p>



<h2 class="wp-block-heading"><span id="toc2">■エラーの対応方法</span></h2>



<p>今回は下図のようなシステムを見本で作成しました。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="777" height="262" src="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-65.png" alt="" class="wp-image-1817" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-65.png 777w, https://dokugakuexcel.com/wp-content/uploads/2021/10/image-65-300x101.png 300w, https://dokugakuexcel.com/wp-content/uploads/2021/10/image-65-768x259.png 768w" sizes="(max-width: 777px) 100vw, 777px" /></figure>



<p>システムとして、身長・体重を打ち込んで更新を押すと<br>8行以降に<span class="marker-under-red">データを蓄積していく</span>シートを用意しました。その際にBMIも算出します。</p>



<p>プログラムも見本で載せておきます</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub データ集計()</p><p>Dim EndRow As Long<br>Dim Height As Long &#8216;身長<br>Dim Weight As Long &#8216;体重</p><p>EndRow = Cells(7, 2).End(xlDown).Row + 1</p><p>Height = Cells(3, 2)<br>Weight = Cells(3, 3)</p><p>Cells(EndRow, 2) = Height<br>Cells(EndRow, 3) = Weight<br>Cells(EndRow, 4) = Weight / (Height / 100) ^ 2</p><p>Range(&#8220;B3:C3&#8221;).ClearContents</p><p>End Sub</p></blockquote>



<p>では、このプログラムを元に説明していきます。</p>



<p></p>



<h3 class="wp-block-heading"><span id="toc3">・①対象範囲内でエラーが起きたら指定位置へ飛ぶ</span></h3>



<p>まず、<strong><span class="marker-under-red">エラー発生時に指定位置に飛ぶ方法</span></strong>について紹介します。<br>この方法はエラーの根本的な解決方法にはなってませんが<br>エラー画面が発生しない1番手っ取り早い方法です。</p>



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



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



<p>つまり</p>



<p>「<span class="bold-red">On Error Goto<span class="bold-blue"> 任意ラベル</span></span>」から「<span class="bold-blue">任意ラベル</span>：」の範囲内で<br>異常があった場合、<span class="bold-green">エラー時の処理</span>まで飛んでくれます。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub データ集計①織り込み()</p><p>Dim EndRow As Long<br>Dim Height As Long &#8216;身長<br>Dim Weight As Long &#8216;体重</p><p><span class="bold-red">On Error GoTo <span class="bold-blue">エラー1</span></span></p><p>EndRow = Cells(7, 2).End(xlDown).Row + 1</p><p>Height = Cells(3, 2)<br>Weight = Cells(3, 3)</p><p>Cells(EndRow, 2) = Height<br>Cells(EndRow, 3) = Weight<br>Cells(EndRow, 4) = Weight / (Height / 100) ^ 2</p><p>Range(&#8220;B3:C3&#8221;).ClearContents</p><p>Exit Sub</p><p><span class="bold-blue">エラー1</span>:</p><p><span class="bold-green">MsgBox (&#8220;誤った数値が入力されています&#8221;)</span></p><p>End Sub</p></blockquote>



<p>図解するとこのようになります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="655" height="379" src="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-66.png" alt="" class="wp-image-1818" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-66.png 655w, https://dokugakuexcel.com/wp-content/uploads/2021/10/image-66-300x174.png 300w, https://dokugakuexcel.com/wp-content/uploads/2021/10/image-66-330x190.png 330w, https://dokugakuexcel.com/wp-content/uploads/2021/10/image-66-120x68.png 120w" sizes="(max-width: 655px) 100vw, 655px" /></figure>



<p>では実際にエラーが出るように更新してみましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="366" height="253" src="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-67.png" alt="" class="wp-image-1819" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-67.png 366w, https://dokugakuexcel.com/wp-content/uploads/2021/10/image-67-300x207.png 300w" sizes="(max-width: 366px) 100vw, 366px" /></figure>



<p><strong><span class="marker-under-blue">身長に間違えて「A」</span></strong>を打ち込んだとします。<br>通常は身長を「Cells(EndRow, 2) = Height」で変数「Height」に格納するのですが<br><strong><span class="marker-under-blue">変数「Height」の型は「Long」なので文字は格納できません</span></strong>。</p>



<p>なので通常は下図のような異常が出ます。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="401" height="198" src="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-68.png" alt="" class="wp-image-1820" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-68.png 401w, https://dokugakuexcel.com/wp-content/uploads/2021/10/image-68-300x148.png 300w" sizes="(max-width: 401px) 100vw, 401px" /></figure>



<p>では改善したプログラムを走らせてみます。<br>結果はこのようになります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="310" height="216" src="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-69.png" alt="" class="wp-image-1821" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-69.png 310w, https://dokugakuexcel.com/wp-content/uploads/2021/10/image-69-300x209.png 300w" sizes="(max-width: 310px) 100vw, 310px" /></figure>



<p>エラー処理にプログラムが飛んで、メッセージボックスの<br>「誤った数値が入力されています」が表示されました。<br>この後は<strong>「OK」を押せばプログラムは終わってくれます</strong>。</p>



<p>VBAのエラーを表示させたくない場合はプログラムの先頭に「<span class="bold-red">On Error GoTo　<span class="bold-blue">任意ラベル</span></span>」<br>最後に「<span class="bold-blue">任意ラベル</span>：」を置いて<br>そのあとに「<span class="bold-green">MsgBox (&#8220;エラーになりました。見直してください&#8221;）</span>」を入れれば<br>とりあえずVBAの異常は無くなり、メッセージでの出力にすることができました。</p>



<h3 class="wp-block-heading"><span id="toc4">・②IFを使用して異常値を検出して指定位置に飛ぶ</span></h3>



<p>今度はIFを使用して<strong><span class="marker-under">異常値を検出し、異常処理行まで飛んでみましょう</span></strong>。<br>この方法は先ほどの型が違うなどのエラーは適応外ですが<br><strong><span class="marker-under">エラーの根本を検出</span></strong>できます。</p>



<p>では先ほどの見本を元に進めていきます。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="363" height="258" src="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-70.png" alt="" class="wp-image-1822" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-70.png 363w, https://dokugakuexcel.com/wp-content/uploads/2021/10/image-70-300x213.png 300w" sizes="(max-width: 363px) 100vw, 363px" /></figure>



<p>「B3」の身長を見てみましょう。<br>間違えて「0」を余分につけて「1720」になっています。</p>



<p>このまま更新ボタンを押すとそのまま計算・集計してしまい、正確な計算ができません。<br>ではIFを使用してエラーを防止してみましょう。</p>



<p>条件として<strong><span class="marker-under-red">身長の範囲を「120～200」</span></strong>までとします。</p>



<p>ではIFを使用して120～200以外は別の処理を行いたいと思います。<br>プログラムはこのようになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>If Height &lt; <strong><span class="marker-under-red">120</span></strong> Or Height &gt;<strong><span class="marker-under-red"> 200</span></strong> Then<br><span class="bold-green">MsgBox (&#8220;身長は120から200までで入力してください&#8221;)</span><br>Exit Sub<br>End If</p></blockquote>



<p>Heightは身長データを格納している変数とします。<br>IFを使い、Heightが120～200の範囲以外だと 「<span style="color: rgb(62, 179, 112); font-weight: bold;">身長は120から200までで入力してください</span> 」</p>



<p>とメッセージボックスを表示してExit Subでプログラムを終わらせます。<br>IFの詳しい使用方法は下記リンクを参照してみてください。☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90if%e9%96%a2%e6%95%b0%e3%80%91%e3%82%a8%e3%82%af%e3%82%bb%e3%83%ab%e3%81%a7%e2%97%8b%e2%97%8b%e3%81%a0%e3%81%a3%e3%81%9f%e3%82%89%e2%96%b3%e2%96%b3%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b/">【IF関数】エクセルで○○だったら△△を表示する～条件分岐を身に着ける～ ► 独学エクセル塾 (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 EndRow As Long<br>Dim Height As Long &#8216;身長<br>Dim Weight As Long &#8216;体重</p><p>EndRow = Cells(7, 2).End(xlDown).Row + 1</p><p>Height = Cells(3, 2)<br>Weight = Cells(3, 3)</p><p>If Height &lt; <strong><span class="marker-under-red">120 </span></strong>Or Height &gt; <strong><span class="marker-under-red">200</span></strong> Then<br><span class="bold-green">MsgBox (&#8220;身長は120から200までで入力してください&#8221;)</span><br>Exit Sub<br>End If</p><p>Cells(EndRow, 2) = Height<br>Cells(EndRow, 3) = Weight<br>Cells(EndRow, 4) = Weight / (Height / 100) ^ 2</p><p>Range(&#8220;B3:C3&#8221;).ClearContents</p><p>End Sub</p></blockquote>



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



<figure class="wp-block-image size-full"><img decoding="async" width="338" height="212" src="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-71.png" alt="" class="wp-image-1823" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-71.png 338w, https://dokugakuexcel.com/wp-content/uploads/2021/10/image-71-300x188.png 300w" sizes="(max-width: 338px) 100vw, 338px" /></figure>



<p>IFで指定範囲外の数値を検出して</p>



<p>設定したメッセージでフィードバックが可能になりました。</p>



<h3 class="wp-block-heading"><span id="toc5">・③入力規則で入力データを制限する</span></h3>



<p>最後にVBAプログラムでの対処ではありませんが<br>エクセルの機能の<strong><span class="marker-under-red">入力規則を用いたエラーの回避</span></strong>を紹介します。</p>



<p>こちらはエラーの根本を解決する方法になっており、<br><strong><span class="marker-under-red">エラーになる入力をさせない方法</span></strong>です。</p>



<p>では先ほどと同様に身長を「120～200」で制限してみましょう。<br>入力制限対象を選択して<strong><span class="marker-under-blue">【データ】</span></strong>から<strong><span class="marker-under-blue">【データの入力規則】</span></strong>を選択してください。</p>



<figure class="wp-block-image"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2021/08/image-10.png" alt=""/></figure>



<p>ここでは詳しく説明はしませんが<br>入力値の種類を「整数」にして最小値を「120」、最大限を「200」にします。<br>データを「次の値の間」にしました。</p>



<p>詳しい入力規則については下記リンクを参照してみてください☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90%e3%83%aa%e3%82%b9%e3%83%88%e3%81%ae%e4%bd%9c%e6%88%90%e3%81%ab%e4%be%bf%e5%88%a9%e3%80%91%e3%83%87%e3%83%bc%e3%82%bf%e3%81%ae%e5%85%a5%e5%8a%9b%e8%a6%8f%e5%89%87%e3%81%ae%e8%a8%ad%e5%ae%9a/">【リストの作成に便利】データの入力規則の設定・制限から解除まで ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<figure class="wp-block-image size-full"><img decoding="async" width="488" height="366" src="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-72.png" alt="" class="wp-image-1824" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-72.png 488w, https://dokugakuexcel.com/wp-content/uploads/2021/10/image-72-300x225.png 300w" sizes="(max-width: 488px) 100vw, 488px" /></figure>



<p>これにより入力は「120～200」の整数のみ可能になります。<br>「A」などといった文字も制限されるのでとても便利です。</p>



<p></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/language/reference/user-interface-help/on-error-statement">On Error ステートメント (VBA) | Microsoft Learn</a></p>



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



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



<p>今回は対策を①から③の<br>①対象範囲内でエラーが起きたら指定位置へ飛ぶ<br>②IFを使用して異常値を検出して指定位置に飛ぶ<br>③入力規則で入力データを制限する<br>で紹介しました。</p>



<p>①～③の知識は、すべてエラーを防止するためには大切なのですが<br>操作する人が複数であればあるほど自分の想定を超えた処理を行い、<br>エラーになってしまいます。<br>そのためにも①の方法は入れておけば汎用性は上がると思います</p>



<p>ぜひ、①から③を織り込んでエラーに強いプログラムを作成してみてください。</p>



<p>それでは次回の記事でお会いしましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%81%ae%e3%82%a8%e3%83%a9%e3%83%bc%e5%af%be%e7%ad%96%e3%80%91%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%ab%e8%b2%a0%e3%81%91%e3%81%aa%e3%81%84%e3%83%97%e3%83%ad/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1815</post-id>	</item>
		<item>
		<title>【マクロVBA】文字検索(Find)し、当てはまる行・列番号を求める！完全・部分一致やエラーも解説</title>
		<link>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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590vba%25e7%259f%25a5%25e8%25ad%2598-14%25e3%2580%2591%25e6%2596%2587%25e5%25ad%2597%25e6%25a4%259c%25e7%25b4%25a2find%25e3%2581%2597%25e3%2580%2581%25e5%25bd%2593%25e3%2581%25a6%25e3%2581%25af%25e3%2581%25be%25e3%2582%258b%25e8%25a1%258c%25e6%2595%25b0%25e3%2581%25a8%25e5%2588%2597%25e6%2595%25b0</link>
					<comments>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/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Fri, 30 Jul 2021 09:58:36 +0000</pubDate>
				<category><![CDATA[検索・置換]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[検索]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[エラー]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=913</guid>

					<description><![CDATA[VBAを使う中で文字や数値を検索し、その項目に当てはまる行数・行番号と列数・列番号を知りたいと思ったことはないでしょうか。 今回は条件に当てはまる文字を検索する方法とその検索結果をもとに行数と列数を割り出す方法について説 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>VBAを使う中で文字や数値を検索し、その項目に当てはまる行数・行番号と列数・列番号を知りたいと<br>思ったことはないでしょうか。</p>



<p>今回は<strong><span class="marker-under">条件に当てはまる文字を検索する方法</span></strong>と<br>その検索結果をもとに<strong><span class="marker-under">行数と列数を割り出す方法</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-12" checked><label class="toc-title" for="toc-checkbox-12">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">■検索方法について</a></li><li><a href="#toc2" tabindex="0">■文字・数値を検索する</a></li><li><a href="#toc3" tabindex="0">■検索して当てはまったデータの行数と列数を変数に格納する</a></li><li><a href="#toc4" tabindex="0">■検索した行数と列数を活用してみる</a></li><li><a href="#toc5" tabindex="0">■検索エラー時の対応</a></li><li><a href="#toc6" tabindex="0">&#x2b1b;︎公式</a></li><li><a href="#toc7" tabindex="0">■まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">■検索方法について</span></h2>



<p></p>



<p>検索する際に使用するのが<strong><span class="marker-under-red">「Find」</span></strong>です。<br>英語の意味通りですね。</p>



<p>仕組みについてはこのようになります。</p>



<pre class="wp-block-verse"><strong><span class="fz-20px">Set <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-orange-color">変数 </mark>=<span class="bold-green">検索範囲</span>.Find(<span class="bold-red">検索ワード</span>,<span class="bold-blue">検索方法</span>)</span></strong></pre>



<p><span class="fz-22px"><strong><span class="has-inline-color has-orange-color">変<span class="fz-20px">数</span></span></strong></span></p>



<p>こちらはデータが存在した際にセルの位置を格納するので<br>Rangeのオブジェクトとなります</p>



<p>例として　<br>Dim FindCell As Range<br>とすると検索で当てはまれば「FindCell」にセルの位置が格納されるイメージです。</p>



<p></p>



<p><span class="fz-22px"><span class="bold-green">検索範囲</span></span></p>



<p>こちらは<strong><span class="marker-under">調査したい範囲を入力</span></strong>します。<br>例えばB2からM2の範囲で検索したい場合は<br>Range(&#8220;B2:M2&#8221;)<br>または<br>Range(CELLS(2,2),CELLS(2,13))<br>となります。</p>



<p>全セルで検索したい場合は<strong><span class="marker-under-red">「Cells」</span></strong>で構いません。</p>



<p></p>



<p><span class="bold-red"><span class="fz-22px">検索ワード</span></span></p>



<p>こちらには<strong><span class="marker-under">検索したい文字・数値を入れます</span></strong>。<br>実際に文字・数値を打ち込んでもいいですし<br>変数に格納されている文字・数値で検索しても、かまいません。</p>



<p></p>



<p><span class="fz-22px"><span class="bold-blue">検索方法</span></span></p>



<p>こちらはどのように検索するか選択するオプションのようなものです。<br>方法については下記にまとめました。</p>



<p></p>



<p></p>


<table>
<tbody>
<tr>
<th>項目</th>
<th>引数</th>
<th>定数</th>
<th>検索方法の内容</th>
</tr>
<tr>
<td>開始位置</td>
<td>After</td>
<td>&#8211;</td>
<td>検索開始位置</td>
</tr>
<tr>
<td rowspan="3">検索の対象</td>
<td rowspan="3">LookIn</td>
<td>xlFormulas</td>
<td>数式</td>
</tr>
<tr>
<td>xlValues</td>
<td>値</td>
</tr>
<tr>
<td>xlComents</td>
<td>コメント</td>
</tr>
<tr>
<td rowspan="2">検索の制約</td>
<td rowspan="2">ＬookAt</td>
<td>xlPart</td>
<td>部分一致</td>
</tr>
<tr>
<td>xlWhole</td>
<td>全一致</td>
</tr>
<tr>
<td rowspan="2">検索の方向</td>
<td rowspan="2">SearchOrder</td>
<td>xlByRows</td>
<td>列</td>
</tr>
<tr>
<td>xlByColumns</td>
<td>行</td>
</tr>
<tr>
<td rowspan="2">検索順</td>
<td rowspan="2">SearchDirection</td>
<td>xlNext</td>
<td>正方向</td>
</tr>
<tr>
<td>xlPrevious</td>
<td>逆方向</td>
</tr>
<tr>
<td rowspan="2">大・小文字を区別</td>
<td rowspan="2">MatchCase</td>
<td>TRUE</td>
<td>大・小文字を区別</td>
</tr>
<tr>
<td>FALSE</td>
<td>区別しない</td>
</tr>
<tr>
<td rowspan="2">全・半角を区別</td>
<td rowspan="2">MatchByte</td>
<td>TRUE</td>
<td>全・半角を区別</td>
</tr>
<tr>
<td>FALSE</td>
<td>区別しない</td>
</tr>
<tr>
<td rowspan="2">書式の検索</td>
<td rowspan="2">SearchFormat</td>
<td>TRUE</td>
<td>検索する</td>
</tr>
<tr>
<td>FALSE</td>
<td>しない</td>
</tr>
</tbody>
</table>


<p>こちらはすべて省略可能になっています。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><span class="fz-20px"><span class="fz-22px"><span class="bold-red">見本：</span></span></span></strong></p><p>Set FindCell =Range(&#8220;B2:M2&#8221;).Find(&#8220;111&#8221;, After, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False, MatchByte:=False, SearchFormat:=False)</p></blockquote>



<p></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><span class="fz-24px"><span class="fz-22px"><span class="bold-blue">内訳：</span></span></span></strong></p><p>B2からM2の範囲で&#8221;111&#8243;を検索対象を値で、全一致で検索して、列・逆方向に検索し、大・小文字と全角・半角は区別せず書式を含めない条件で当てはまったものを「FindCell」に格納<br>となります。</p></blockquote>



<p></p>



<h2 class="wp-block-heading"><span id="toc2">■文字・数値を検索する</span></h2>



<p></p>



<p>まず、<strong><span class="marker-under">検索する方法</span></strong>について学んでいきましょう。<br>下記のように月が並んでいるデータを用意しました。例で<strong><span class="marker-under">「4月」を検索</span></strong>してみましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="882" height="78" src="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-309.png" alt="" class="wp-image-914" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-309.png 882w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-309-300x27.png 300w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-309-768x68.png 768w" sizes="(max-width: 882px) 100vw, 882px" /></figure>



<p>では式に当てはめていきましょう。</p>



<p><strong><span class="fz-22px">Set <span class="has-inline-color has-orange-color">変数</span> =<span class="bold-green">検索範囲</span>.Find(<span class="bold-red">検索ワード</span>,<span class="bold-blue">検索方法</span>)</span></strong></p>



<p>変数名は何でもいいですが<strong><span class="has-inline-color has-orange-color">「FindCell」</span></strong>としましょう<br>検索範囲は1月から12月なので<span class="bold-green">「B2:M2」</span>となります。<br>検索ワードは<span class="bold-red">「4月」</span>です。<br>検索方法は4月で固定したいので<span class="bold-blue">LookAt:=xlWhole</span>を宣言します。</p>



<p>当てはめるとこうなります。</p>



<p><span class="fz-20px"><strong>Set <span class="has-inline-color has-orange-color">FindCell</span> = <span class="bold-green">Range(&#8220;B2:M2&#8221;)</span>.Find(<span class="bold-red">&#8220;4月&#8221;</span>, <span class="bold-blue">LookAt:=xlWhole</span>)</strong></span></p>



<p>こちらを使い、仮にプログラムを作成しました。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="479" height="174" src="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-310.png" alt="" class="wp-image-915" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-310.png 479w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-310-300x109.png 300w" sizes="(max-width: 479px) 100vw, 479px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 検索する()</p><p>Dim FindCell As Range</p><p>Set FindCell = Range(&#8220;B2:M2&#8221;).Find(&#8220;4月&#8221;, LookAt:=xlWhole)</p><p>End Sub</p></blockquote>



<p></p>



<p>実際にプログラムを実行してみましょう。<br>Set FindCell = Range(&#8220;B2:M2&#8221;).Find(&#8220;4月&#8221;, LookAt:=xlWhole)を読み込む前は</p>



<p><strong><span class="marker-under">「FindCell」は「Nothing」</span></strong>だったのですが</p>



<figure class="wp-block-image size-full"><img decoding="async" width="473" height="161" src="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-311.png" alt="" class="wp-image-916" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-311.png 473w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-311-300x102.png 300w" sizes="(max-width: 473px) 100vw, 473px" /></figure>



<p>読み込むと…</p>



<figure class="wp-block-image size-full"><img decoding="async" width="482" height="180" src="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-312.png" alt="" class="wp-image-917" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-312.png 482w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-312-300x112.png 300w" sizes="(max-width: 482px) 100vw, 482px" /></figure>



<p><strong><span class="marker-under">「FindCell」に「4月」</span></strong>が入りました。<br>こちらは検索範囲にデータがあったため読み込んでいることになります。<br><strong><span class="marker-under-red">データがなければそのまま「Nothing」</span></strong>のとなります。</p>



<p>では検索できたのでこちらの知識を応用してみます。</p>



<p></p>



<h2 class="wp-block-heading"><span id="toc3">■検索して当てはまったデータの行数と列数を変数に格納する</span></h2>



<p></p>



<p>では応用です。</p>



<p>このように月をＣ2で選択して、E2に打ち込んだ数値・文字を選択した月の1つ下のセルに打ち込んでみましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="898" height="191" src="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-313.png" alt="" class="wp-image-918" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-313.png 898w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-313-300x64.png 300w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-313-768x163.png 768w" sizes="(max-width: 898px) 100vw, 898px" /></figure>



<p>検索の方は先ほどの流れと同様にこのようになります。</p>



<p>Set FindCell = Range(&#8220;B4:M4&#8221;).Find(Cells(2,3), LookAt:=xlWhole)</p>



<p>ここまででできることはFindCellに検索結果の位置が把握できることです。</p>



<p>そこで行数と列数を変数に記録する際は下記の仕組みを利用します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><span class="fz-20px"><span class="bold-red">行数　変数 = 検索した変数.Row</span><br><span class="bold-blue">列数　変数 = 検索した変数.Column</span></span></strong></p></blockquote>



<p>今回は求めたい行数を<span class="bold-red">「SarchRow」</span>、列数を<span class="bold-blue">「SarchColumn」</span>と変数宣言します</p>



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



<figure class="wp-block-image size-full"><img decoding="async" width="587" height="225" src="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-314.png" alt="" class="wp-image-919" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-314.png 587w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-314-300x115.png 300w" sizes="(max-width: 587px) 100vw, 587px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 検索する()</p><p>Dim FindCell As Range<br>Dim SarchRow As Long, SarchColumn As Long</p><p>Set<span class="bold-green"> FindCell</span> = Range(&#8220;B4:M4&#8221;).Find(Cells(2, 3), LookAt:=xlWhole)</p><p><span class="bold-red">SarchRow</span> = <span class="bold-green">FindCell</span>.<span class="bold-red">Row</span><br><strong><span class="bold-blue">SarchColumn</span></strong> = <span class="bold-green">FindCell</span>.<span class="bold-blue">Column</span></p><p>MsgBox Cells(2, 3) &amp; &#8220;は&#8221; &amp; <span class="bold-red">SarchRow </span>&amp; &#8220;行目の&#8221; &amp; <span class="bold-blue">SarchColumn</span> &amp; &#8220;列目です&#8221;</p><p>End Sub</p></blockquote>



<p>実行すると・・・</p>



<figure class="wp-block-image size-full"><img decoding="async" width="840" height="270" src="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-315.png" alt="" class="wp-image-920" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-315.png 840w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-315-300x96.png 300w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-315-768x247.png 768w" sizes="(max-width: 840px) 100vw, 840px" /></figure>



<p>行数と列数の検索結果もあってますね。<br>では入力してみましょう。</p>



<p></p>



<h2 class="wp-block-heading"><span id="toc4">■検索した行数と列数を活用してみる</span></h2>



<p></p>



<p>では選択した月から検索した行数と列数を元に数値・文字を入力してみましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="881" height="142" src="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-316.png" alt="" class="wp-image-921" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-316.png 881w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-316-300x48.png 300w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-316-768x124.png 768w" sizes="(max-width: 881px) 100vw, 881px" /></figure>



<p>現在は5月を選択しており、入力する文字は「123件」です。</p>



<p>SarchRow = FindCell.Row<br>SarchColumn = FindCell.Column</p>



<p>により5月の位置はわかっているので<br><strong><span class="fz-20px">Cells(SarchRow + 1, SarchColumn) = Cells(2, 5)</span></strong><br>となります。</p>



<p>先ほどのプログラムに組み込みましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="528" height="243" src="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-317.png" alt="" class="wp-image-922" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-317.png 528w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-317-300x138.png 300w" sizes="(max-width: 528px) 100vw, 528px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 検索する()</p><p>Dim FindCell As Range<br>Dim SarchRow As Long, SarchColumn As Long</p><p>Set FindCell = Range(&#8220;B4:M4&#8221;).Find(Cells(2, 3), LookAt:=xlWhole)</p><p>SarchRow = FindCell.Row<br>SarchColumn = FindCell.Column</p><p>Cells(SarchRow + 1, SarchColumn) = Cells(2, 5)</p><p>End Sub</p></blockquote>



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



<figure class="wp-block-image size-full"><img decoding="async" width="889" height="135" src="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-318.png" alt="" class="wp-image-923" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-318.png 889w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-318-300x46.png 300w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-318-768x117.png 768w" sizes="(max-width: 889px) 100vw, 889px" /></figure>



<p>ちゃんと<strong><span class="marker-under">5月の位置に「123件」</span></strong>と入ってますね。</p>



<p></p>



<h2 class="wp-block-heading"><span id="toc5">■検索エラー時の対応</span></h2>



<p></p>



<p>Findを使用する中で検索して対象がなかった場合、エラーになっています。<br>先ほどの検索で、<strong><span class="marker-under">検索ワードを「13月」</span></strong>で実行してみましょう。</p>



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



<p><strong><span class="marker-under">13月は存在しないのでエラーが出ました。</span></strong><br>このような検索時のエラー対応について説明します。</p>



<p>Findの仕組みは復習にはなりますが下記の通りです。</p>



<p><strong><span class="fz-20px"><br>Set 変数 =検索範囲.Find(検索ワード,検索方法)</span></strong></p>



<p>ここで<strong><span class="marker-under-red">検索して該当がなければ変数は「<span class="bold-red">Nothing</span>」</span></strong>になります。<br>この仕組みとIFを合わせることで対応ができます。</p>



<p>そのプログラムがこちら。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>If 変数 Is <span class="bold-red">Nothing</span> Then<br>MsgBox &#8220;該当データはありません&#8221;<br>Exit Sub<br>End If</p></blockquote>



<p>仕組みとして変数に該当がなかったら<span class="bold-red">Nothing</span>なのでIFで<br><strong><span class="marker-under-red">変数が<span class="bold-red">Nothing</span>だったときの分岐処理</span></strong>を行います。</p>



<p>処理方法としてメッセージボックスで「該当データはありません」と表示したのち<br>Exit Subにてプログラムを終了する仕組みです。</p>



<p>では先ほどにプログラムに組み込みましょう。<br>エラーの分岐はSetで変数に検索結果を格納した後です。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="477" height="322" src="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-320.png" alt="" class="wp-image-925" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-320.png 477w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-320-300x203.png 300w" sizes="(max-width: 477px) 100vw, 477px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 検索する()</p><p>Dim FindCell As Range<br>Dim SarchRow As Long, SarchColumn As Long</p><p>Set FindCell = Range(&#8220;B4:M4&#8221;).Find(&#8220;13月&#8221;, LookAt:=xlWhole)</p><p><strong>If FindCell Is <span class="bold-red">Nothing</span> Then<br>MsgBox &#8220;該当データはありません&#8221;<br>Exit Sub<br>End If</strong></p><p>SarchRow = FindCell.Row<br>SarchColumn = FindCell.Column</p><p>Cells(SarchRow + 1, SarchColumn) = Cells(2, 5)</p><p>End Sub</p></blockquote>



<p>こちらで実行すると・・・</p>



<figure class="wp-block-image size-full"><img decoding="async" width="187" height="159" src="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-321.png" alt="" class="wp-image-926"/></figure>



<p>エラーにも対応できるプログラムにできましたね。</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.range.find">Range.Find メソッド (Excel) | Microsoft Learn</a></p>



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



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



<p>Findが活用できれば該当セルへの打ち込みが可能になったり<br>自動化でできることが増えます。</p>



<p></p>



<p>ぜひ参考にしてみてください。</p>



<p></p>



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



<p><a href="https://dokugakuexcel.com/%e3%80%90vba%e7%9f%a5%e8%ad%98-15%e3%80%91%e8%a1%8c%e3%81%ae%e6%8c%bf%e5%85%a5%e3%83%bb%e5%89%8a%e9%99%a4-%e5%88%97%e3%81%ae%e6%8c%bf%e5%85%a5%e3%83%bb%e5%89%8a%e9%99%a4%e3%82%92%e6%a7%98%e3%80%85/">【VBA知識 15】行の挿入・削除/列の挿入・削除を様々なパターン・方向で行う ► 独学エクセル塾 (dokugakuexcel.com)</a></p>
]]></content:encoded>
					
					<wfw:commentRss>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/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">913</post-id>	</item>
		<item>
		<title>【AGGREGATE関数】エクセルで空白やエラーを無視して合計・平均・最大値・最小値を求める。</title>
		<link>https://dokugakuexcel.com/%e3%80%90aggregate%e9%96%a2%e6%95%b0%e3%80%91%e3%82%a8%e3%82%af%e3%82%bb%e3%83%ab%e3%81%a7%e7%a9%ba%e7%99%bd%e3%82%84%e3%82%a8%e3%83%a9%e3%83%bc%e3%82%92%e7%84%a1%e8%a6%96%e3%81%97%e3%81%a6%e5%90%88/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590aggregate%25e9%2596%25a2%25e6%2595%25b0%25e3%2580%2591%25e3%2582%25a8%25e3%2582%25af%25e3%2582%25bb%25e3%2583%25ab%25e3%2581%25a7%25e7%25a9%25ba%25e7%2599%25bd%25e3%2582%2584%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e3%2582%2592%25e7%2584%25a1%25e8%25a6%2596%25e3%2581%2597%25e3%2581%25a6%25e5%2590%2588</link>
					<comments>https://dokugakuexcel.com/%e3%80%90aggregate%e9%96%a2%e6%95%b0%e3%80%91%e3%82%a8%e3%82%af%e3%82%bb%e3%83%ab%e3%81%a7%e7%a9%ba%e7%99%bd%e3%82%84%e3%82%a8%e3%83%a9%e3%83%bc%e3%82%92%e7%84%a1%e8%a6%96%e3%81%97%e3%81%a6%e5%90%88/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Wed, 07 Jul 2021 11:43:46 +0000</pubDate>
				<category><![CDATA[関数]]></category>
		<category><![CDATA[MAX]]></category>
		<category><![CDATA[最大値]]></category>
		<category><![CDATA[MIN]]></category>
		<category><![CDATA[平均]]></category>
		<category><![CDATA[AVERAGE]]></category>
		<category><![CDATA[空白]]></category>
		<category><![CDATA[エラー]]></category>
		<category><![CDATA[AGGREGATE]]></category>
		<category><![CDATA[AGGREGATE関数]]></category>
		<category><![CDATA[合計]]></category>
		<category><![CDATA[最小]]></category>
		<category><![CDATA[SUM]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=517</guid>

					<description><![CDATA[この関数は必見です。とても便利な関数になってます。 エクセルを使用するうえでエラーや空白は付き物。その際にエラーや空白を無視して計算したいですよね。今回はそれを可能する関数です。 この関数を使用するだけでエラーが発生する [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>この関数は必見です。とても便利な関数になってます。</p>



<p><br>エクセルを使用するうえでエラーや空白は付き物。<br>その際にエラーや空白を無視して計算したいですよね。今回はそれを可能する関数です。</p>



<p>この関数を使用するだけでエラーが発生する可能性がある場面は防ぐことができます。</p>



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




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-14" checked><label class="toc-title" for="toc-checkbox-14">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">■関数の仕組み</a></li><li><a href="#toc2" tabindex="0">■ エラーを無視して計算する</a><ol><li><a href="#toc3" tabindex="0">・計算方法</a></li><li><a href="#toc4" tabindex="0">・除外のオプション</a></li></ol></li><li><a href="#toc5" tabindex="0">■実践する</a><ol><li><a href="#toc6" tabindex="0">・エラーを無視して合計を計算</a></li><li><a href="#toc7" tabindex="0"> ・エラーを無視して平均を計算 </a></li></ol></li><li><a href="#toc8" tabindex="0">■練習問題</a><ol><li><a href="#toc9" tabindex="0"> ・ 非表示の行とエラー値を無視して最大値（MAX）を計算  </a></li><li><a href="#toc10" tabindex="0"> ・ 非表示の行とエラー値を無視して最小値（MIN）を計算  </a></li></ol></li><li><a href="#toc11" tabindex="0">■公式の説明</a></li><li><a href="#toc12" tabindex="0">■まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">■関数の仕組み</span></h2>



<figure class="wp-block-pullquote"><blockquote><p><strong>=AGGREGATE(<span class="has-inline-color has-red-color"><span class="bold-red">計算方法</span></span>,<span class="has-inline-color has-indigo-color"><span class="bold-blue">除外のオプション</span></span>,<span class="has-inline-color has-teal-color"><span class="bold-green">計算範囲</span></span>)</strong></p></blockquote></figure>



<p><span class="bold-red">計算方法</span>：どのような計算をするか選択する（合計や平均など）</p>



<p><span class="bold-blue">除外のオプション</span>：エラーや空白等、スルーする条件を決める</p>



<p><span class="bold-green">計算範囲</span>：計算する範囲を決定する</p>



<p></p>



<p></p>



<h2 class="wp-block-heading"><span id="toc2">■ エラーを無視して計算する</span></h2>



<p>見本で下図のような得点表を作成しました。</p>



<p>今回はA～Jさんの点数の合計・平均を求めていきます。</p>



<p></p>



<figure class="wp-block-image size-large"><img decoding="async" width="478" height="277" src="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-59.png" alt="" class="wp-image-518" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/07/image-59.png 478w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-59-300x174.png 300w, https://dokugakuexcel.com/wp-content/uploads/2021/07/image-59-330x190.png 330w" sizes="(max-width: 478px) 100vw, 478px" /></figure>



<p>各得点に様々なエラーが発生していますね。<br>この状態で計算してみます。</p>



<p>計算した結果がこちらです。</p>



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



<p></p>



<p>はい、このようにエラーになってしまいます。</p>



<p></p>



<p>このエラーを無視できるのが今回の関数です。</p>



<p><br>では、AGGREGATE関数の説明に移ります。<br>関数の内容はこちら。</p>



<p><span class="fz-20px"><strong>=AGGREGATE(<span class="has-inline-color has-red-color">計算方法</span>,<span class="has-inline-color has-indigo-color">除外のオプション</span><span class="has-inline-color has-teal-color">,計算範囲</span>)</strong></span></p>



<p>では計算方法から見ていきましょう。</p>



<p></p>



<h3 class="wp-block-heading"><span id="toc3">・計算方法</span></h3>



<p>こちらでは合計・平均・最大値・最小値など、どの計算をするか選択できます。</p>



<p>計算できる手法は以下の通りです。当てはまる数値を入力すれば、その計算が可能です。</p>



<p></p>



<figure class="wp-block-table is-style-stripes"><table><thead><tr><th class="has-text-align-center" data-align="center"> 計算方法番号 </th><th class="has-text-align-center" data-align="center"> 内容 </th><th class="has-text-align-center" data-align="center"> 関数 </th></tr></thead><tbody><tr><td class="has-text-align-center" data-align="center">1</td><td class="has-text-align-center" data-align="center"> 平均 </td><td class="has-text-align-center" data-align="center">AVERAGE</td></tr><tr><td class="has-text-align-center" data-align="center">2</td><td class="has-text-align-center" data-align="center"> カウント </td><td class="has-text-align-center" data-align="center">COUNT</td></tr><tr><td class="has-text-align-center" data-align="center">3</td><td class="has-text-align-center" data-align="center"> 空白以外のカウント </td><td class="has-text-align-center" data-align="center">COUNTA</td></tr><tr><td class="has-text-align-center" data-align="center">4</td><td class="has-text-align-center" data-align="center"> 最大値 </td><td class="has-text-align-center" data-align="center">MAX</td></tr><tr><td class="has-text-align-center" data-align="center">5</td><td class="has-text-align-center" data-align="center"> 最小値 </td><td class="has-text-align-center" data-align="center">MIN</td></tr><tr><td class="has-text-align-center" data-align="center">6</td><td class="has-text-align-center" data-align="center"> 引数の積 </td><td class="has-text-align-center" data-align="center">PRODUCT</td></tr><tr><td class="has-text-align-center" data-align="center">7</td><td class="has-text-align-center" data-align="center"> データ自体の標準偏差 </td><td class="has-text-align-center" data-align="center">STDEV.S</td></tr><tr><td class="has-text-align-center" data-align="center">8</td><td class="has-text-align-center" data-align="center"> 母集団の標準偏差 </td><td class="has-text-align-center" data-align="center"> STDEV.P</td></tr><tr><td class="has-text-align-center" data-align="center">9</td><td class="has-text-align-center" data-align="center"> 合計 </td><td class="has-text-align-center" data-align="center">SUM</td></tr><tr><td class="has-text-align-center" data-align="center">10</td><td class="has-text-align-center" data-align="center"> 不偏分散 </td><td class="has-text-align-center" data-align="center">VAR.S</td></tr><tr><td class="has-text-align-center" data-align="center">11</td><td class="has-text-align-center" data-align="center"> 標本分散 </td><td class="has-text-align-center" data-align="center">VAR.P</td></tr><tr><td class="has-text-align-center" data-align="center">12</td><td class="has-text-align-center" data-align="center"> 中央値 </td><td class="has-text-align-center" data-align="center">MEDIAN</td></tr><tr><td class="has-text-align-center" data-align="center">13</td><td class="has-text-align-center" data-align="center"> 最頻値 </td><td class="has-text-align-center" data-align="center">MODE.SNGL</td></tr><tr><td class="has-text-align-center" data-align="center">14</td><td class="has-text-align-center" data-align="center"> 降順の順位 </td><td class="has-text-align-center" data-align="center">LARGE</td></tr><tr><td class="has-text-align-center" data-align="center">15</td><td class="has-text-align-center" data-align="center"> 昇順の順位 </td><td class="has-text-align-center" data-align="center">SMALL</td></tr><tr><td class="has-text-align-center" data-align="center">16</td><td class="has-text-align-center" data-align="center"> 百分位数 </td><td class="has-text-align-center" data-align="center">PERCENTILE.INC</td></tr><tr><td class="has-text-align-center" data-align="center">17</td><td class="has-text-align-center" data-align="center"> 四分位数 </td><td class="has-text-align-center" data-align="center">QUARTILE.INC</td></tr><tr><td class="has-text-align-center" data-align="center">18</td><td class="has-text-align-center" data-align="center"> 百分位数（0％と100％）を除外 </td><td class="has-text-align-center" data-align="center">PERCENTILE.EXC</td></tr><tr><td class="has-text-align-center" data-align="center">19</td><td class="has-text-align-center" data-align="center"> 四分位数（0％と100％）を除外 </td><td class="has-text-align-center" data-align="center"> QUARTILE.EXC</td></tr></tbody></table></figure>



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



<p>よく使うのは<strong>1.平均、2.カウント、4.MAX、5.MIN、9.合計</strong>ぐらいでしょうか。<br>標準偏差は分析マンには必需品のアイテムですね。</p>



<p></p>



<h3 class="wp-block-heading"><span id="toc4">・除外のオプション</span></h3>



<p></p>



<p>ここでは無視したいオプションを選択します。</p>



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



<p><br>文字通りなので説明しませんが、</p>



<p>迷ったら<strong><span class="marker-under-red">「7」</span></strong>の<span class="marker-under-red"><strong>「非表示の行とエラー値を無視します」</strong></span>を選択で大丈夫です。</p>



<p>非表示の行の無視や、入れ子、エラー値のみ無視など様々なオプションがあるので場面によって</p>



<p>使い分けてみてください。</p>



<p></p>



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



<p></p>



<h3 class="wp-block-heading"><span id="toc6">・エラーを無視して合計を計算</span></h3>



<p></p>



<p>では合計を打ち込んでみましょう。<br>計算方法は<span class="marker-under-red">合計</span>なので<span class="marker-under-red">「9」</span>。除外方法は<span class="marker-under-blue">「7」</span>で設定します。<br>そして合計したい範囲を関数で打ち込むと以下のようになります。</p>



<p><strong><span class="fz-22px">=AGGREGATE(<span class="marker-under-red">9</span>,<span class="marker-under-blue">7</span>,C3:C12)</span></strong></p>



<p>では実際に打ち込んでみましょう。</p>



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



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



<p>エラーにならず、計算してくれていますね。</p>



<p></p>



<h3 class="wp-block-heading"><span id="toc7"> ・エラーを無視して平均を計算 </span></h3>



<p><br>計算方法は<strong><span class="marker-under-red">平均</span></strong>なので<strong><span class="marker-under-red">「1」</span></strong>。除外方法は<strong><span class="marker-under-blue">「7」</span></strong>で設定します。<br>そして合計したい範囲を関数で打ち込むと以下のようになります。</p>



<p></p>



<p><strong><span class="fz-24px"><span class="fz-22px">=AGGREGATE(<span class="marker-under-red">1</span>,<span class="marker-under-blue">7</span>,C3:C12)</span></span></strong></p>



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



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



<p>こちらもうまくいきましたね！</p>



<p>ぜひ活用してみてください。</p>



<p></p>



<h2 class="wp-block-heading"><span id="toc8">■練習問題</span></h2>



<h3 class="wp-block-heading"><span id="toc9"> ・ 非表示の行とエラー値を無視して最大値（MAX）を計算  </span></h3>



<p>では下図の表を参考にしてみましょう。</p>



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



<p>対象はＣ3からC８とします。しかしエラーと空白が混じっているので無視します。</p>



<p></p>



<p><strong>答え：</strong>=AGGREGATE(<span class="bold-red">4</span>,<span class="bold-blue">7</span>,<span class="bold-green">C3:C8</span>)</p>



<p><strong>解説：</strong>最大値(MAX)は「<span class="bold-red">4</span>」、非表示の行とエラー値を無視は「<span class="bold-blue">7</span>」、範囲は「 <span class="bold-green">C3:C8</span> 」</p>



<p></p>



<h3 class="wp-block-heading"><span id="toc10"> ・ 非表示の行とエラー値を無視して最小値（MIN）を計算  </span></h3>



<p>先ほどの計算を最小値（MIN）で計算してみましょう。</p>



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



<p>対象は先ほどと同様Ｃ3からC８とします。今回もエラーと空白が混じっているので無視します。</p>



<p></p>



<p><strong>答え：</strong>=AGGREGATE(<span class="bold-red">5</span>,<span class="bold-blue">7</span>,<span class="bold-green">C3:C8</span>)</p>



<p><strong>解説：</strong>最大値(MAX)は「<span class="bold-red">5</span>」、非表示の行とエラー値を無視は「<span class="bold-blue">7</span>」、範囲は「 <span class="bold-green">C3:C8</span> 」</p>



<p></p>



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



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



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



<p><a href="https://support.microsoft.com/ja-jp/office/aggregate-%E9%96%A2%E6%95%B0-43b9278e-6aa7-4f17-92b6-e19993fa26df">AGGREGATE 関数 &#8211; Office サポート (microsoft.com)</a></p>



<p></p>



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



<p></p>



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



<p>とても便利ですよね。私もこの関数を学んで</p>



<p>SUM関数やAVERAGE関数を使わない場面が増えました。</p>



<p></p>



<p>個人的にとても好きな関数です.</p>



<p></p>



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



<p></p>



<p class="has-text-align-center">このサイトでは独学でエクセルの技術を磨くことができます。基本操作やVBA、関数を随時更新中です。</p>



<p class="has-text-align-center">VBAではストーリー形式で説明していますが途中からでもわかるようにしています。ぜひ参考にしてみてください。</p>



<p class="has-text-align-center">いつかはエクセルの教科書のようなサイトを目指してます。<br>コメントで知りたいことや悩みなど記入していただければお答えしていきます。<br>ぜひ、ほかの記事もご覧ください。皆様の参考になれれば幸いです！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90aggregate%e9%96%a2%e6%95%b0%e3%80%91%e3%82%a8%e3%82%af%e3%82%bb%e3%83%ab%e3%81%a7%e7%a9%ba%e7%99%bd%e3%82%84%e3%82%a8%e3%83%a9%e3%83%bc%e3%82%92%e7%84%a1%e8%a6%96%e3%81%97%e3%81%a6%e5%90%88/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">517</post-id>	</item>
		<item>
		<title>【IFERROR関数】エラー時の対応について。エラー時の処理の分岐・出力変更の方法</title>
		<link>https://dokugakuexcel.com/%e3%80%90iferror%e9%96%a2%e6%95%b0%e3%80%91%e3%82%a8%e3%82%af%e3%82%bb%e3%83%ab%e3%81%a7%e3%81%ae%e3%82%a8%e3%83%a9%e3%83%bc%e6%99%82%e3%81%ae%e5%af%be%e5%bf%9c%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590iferror%25e9%2596%25a2%25e6%2595%25b0%25e3%2580%2591%25e3%2582%25a8%25e3%2582%25af%25e3%2582%25bb%25e3%2583%25ab%25e3%2581%25a7%25e3%2581%25ae%25e3%2582%25a8%25e3%2583%25a9%25e3%2583%25bc%25e6%2599%2582%25e3%2581%25ae%25e5%25af%25be%25e5%25bf%259c%25e3%2581%25ab%25e3%2581%25a4%25e3%2581%2584%25e3%2581%25a6</link>
					<comments>https://dokugakuexcel.com/%e3%80%90iferror%e9%96%a2%e6%95%b0%e3%80%91%e3%82%a8%e3%82%af%e3%82%bb%e3%83%ab%e3%81%a7%e3%81%ae%e3%82%a8%e3%83%a9%e3%83%bc%e6%99%82%e3%81%ae%e5%af%be%e5%bf%9c%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Wed, 23 Jun 2021 05:47:01 +0000</pubDate>
				<category><![CDATA[関数]]></category>
		<category><![CDATA[ERROR]]></category>
		<category><![CDATA[エラー]]></category>
		<category><![CDATA[IFERROR]]></category>
		<category><![CDATA[IFERROR関数]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=144</guid>

					<description><![CDATA[エクセルを使用していてエラーになった、という方は多いはず…そうなったときの対処法について今回紹介する関数は役立つと思います。 今回使用する関数はIFERROR関数です。IF関数の応用関数になっています。 それでは見ていき [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>エクセルを使用していてエラーになった、という方は多いはず…<br>そうなったときの対処法について今回紹介する関数は役立つと思います。</p>



<p></p>



<p>今回使用する関数はIFERROR関数です。IF関数の応用関数になっています。</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-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">■ IFERROR関数で,エラー時の対応をする</a><ol><li><a href="#toc3" tabindex="0">・通常のIFERROR関数の実践</a></li><li><a href="#toc4" tabindex="0">・ほかの関数との併用</a></li></ol></li><li><a href="#toc5" tabindex="0">■公式の説明</a></li><li><a href="#toc6" tabindex="0">■練習問題</a><ol><li><a href="#toc7" tabindex="0">・練習問題①</a></li><li><a href="#toc8" tabindex="0">・練習問題②</a></li></ol></li><li><a href="#toc9" tabindex="0">■まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">■関数の仕組み</span></h2>



<figure class="wp-block-pullquote has-border-color" style="border-color:#000000"><blockquote><p><strong>=IFERROR(<span class="has-inline-color has-vivid-red-color">通常時</span>,<span class="has-inline-color has-vivid-cyan-blue-color">エラー時</span>)</strong></p></blockquote></figure>



<p></p>



<h2 class="wp-block-heading"><span id="toc2">■ IFERROR関数で,エラー時の対応をする</span></h2>



<p></p>



<h3 class="wp-block-heading"><span id="toc3">・通常のIFERROR関数の実践</span></h3>



<p>下図の見本をもとに進めていきましょう。</p>



<p>値段と個数から自動で総額を算出してくれるようなシートになっています。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="833" height="143" src="https://dokugakuexcel.com/wp-content/uploads/2021/06/image-79.png" alt="" class="wp-image-145" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/06/image-79.png 833w, https://dokugakuexcel.com/wp-content/uploads/2021/06/image-79-300x52.png 300w, https://dokugakuexcel.com/wp-content/uploads/2021/06/image-79-768x132.png 768w, https://dokugakuexcel.com/wp-content/uploads/2021/06/image-79-350x60.png 350w" sizes="(max-width: 833px) 100vw, 833px" /></figure>



<p>現在は20円*50個で1000円と出力しています。</p>



<p>ここで値段が不明になったとします。<br>実際値段に<strong><span class="marker-under-red">「不明」</span></strong>と打ち込んでみましょう。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="393" height="141" src="https://dokugakuexcel.com/wp-content/uploads/2021/06/image-80.png" alt="" class="wp-image-146" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/06/image-80.png 393w, https://dokugakuexcel.com/wp-content/uploads/2021/06/image-80-300x108.png 300w, https://dokugakuexcel.com/wp-content/uploads/2021/06/image-80-167x60.png 167w" sizes="(max-width: 393px) 100vw, 393px" /></figure>



<p>総額は<strong><span class="marker-under-red">エラー</span></strong>になってしまいました。</p>



<p></p>



<p>エラーの原因として<br>現在「不明」*50個という計算です。当然文字に<strong><span class="marker-under-red">数値をかけることができませんからエラー</span></strong>となるのです。</p>



<p>なのでこの値段の関数にエラーが起きたら<strong><span class="marker-under-blue">「？」</span></strong>を表示させるようにしていきます。</p>



<p></p>



<p>ここで使用するのがIFERROR関数。<br>仕組みとしては</p>



<p class="has-medium-font-size"><span style="text-decoration: underline;"><strong>=IFERROR(<span class="bold-red">通常時</span>,<span class="bold-blue">エラー時</span>)</strong></span></p>



<p>のような流れですね。</p>



<p>通常時とはエラーが何もない時の表示方法でエラー時が文字通りエラーの時の</p>



<p>表示方法が選択できます。</p>



<p></p>



<p>なので数式に直すとこのようになります。</p>



<p class="has-medium-font-size"><strong><span style="text-decoration: underline;">=IFERROR(<span class="bold-red">C4*E4</span>,<span class="bold-blue">&#8220;?&#8221;</span>)</span></strong></p>



<p>では実際に関数を入れてみましょう。下図のようになります。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="900" height="144" src="https://dokugakuexcel.com/wp-content/uploads/2021/06/image-81.png" alt="" class="wp-image-147" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/06/image-81.png 900w, https://dokugakuexcel.com/wp-content/uploads/2021/06/image-81-300x48.png 300w, https://dokugakuexcel.com/wp-content/uploads/2021/06/image-81-768x123.png 768w, https://dokugakuexcel.com/wp-content/uploads/2021/06/image-81-375x60.png 375w" sizes="(max-width: 900px) 100vw, 900px" /></figure>



<p>うまくいきましたね。ちなみに通常時もちゃんと計算してくれています。</p>



<p>エラーが発生する可能性のあるセルにはIFERROR関数を入れて、エラーの連鎖を止めてみてください。</p>



<p></p>



<h3 class="wp-block-heading"><span id="toc4">・ほかの関数との併用</span></h3>



<p></p>



<p>先ほどはIFERROR関数のみの使用でしたが</p>



<p>ほかの関数の併用も可能になっています。</p>



<p></p>



<p>下図のようなデータを用意しました。</p>



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



<p>行いたいこととしてAさんのテストの平均値を求めることとします。</p>



<p>通常であれば<strong><span class="marker-under-red">「=AVERAGE(C3:C7)」</span></strong>をC8に打ち込んで平均を求めます。</p>



<p></p>



<p>では理科のテストが手違いでエラーになったとします。</p>



<p>すると平均値を算出するC8はこのようになります。</p>



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



<p>対象範囲にエラーがあるため算出結果もエラーになります。</p>



<p>ではIFERROR関数を使用してエラー時には「エラーあり」と表示しましょう。</p>



<p></p>



<p>式を振り返ってみましょう。</p>



<p> <span style="text-decoration: underline;"><strong>IFERROR(<span class="bold-red">通常時</span>,<span class="bold-blue">エラー時</span>)</strong></span></p>



<p></p>



<p>こちらに当てはめると下記のようになります。</p>



<p>  <span style="text-decoration: underline;"><strong>IFERROR(<span class="bold-red"> <strong><span class="marker-under-red">AVERAGE(C3:C7)</span></strong> </span>,<span class="bold-blue"> ”エラーあり </span></strong></span>”<span style="text-decoration: underline;"><strong>)</strong></span> </p>



<p>通常時にはAVERAGE関数を使用していますね。</p>



<p>ではエラー有と無状態で結果を見てみましょう。</p>



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



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



<p></p>



<p>さらにエラー時でも関数を使用することができるので</p>



<p>場面によって使い分けてみてください。</p>



<p></p>



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



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



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



<p><a href="https://support.microsoft.com/ja-jp/office/max-%E9%96%A2%E6%95%B0-e0012414-9ac8-4b34-9a47-73e662c08098"></a><a href="https://support.microsoft.com/ja-jp/office/iferror-%E9%96%A2%E6%95%B0-c526fd07-caeb-47b8-8bb6-63f3e417f611">IFERROR 関数 &#8211; Office サポート (microsoft.com)</a></p>



<p></p>



<h2 class="wp-block-heading"><span id="toc6">■練習問題</span></h2>



<p>では練習問題でIFERROR関数を身に着けてみてください。</p>



<p></p>



<h3 class="wp-block-heading"><span id="toc7">・練習問題①</span></h3>



<p>下図をご覧ください。数値1と数値2を足した値をF3に表示してみましょう。</p>



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



<p>数値1と数値2にエラーが生じれば合計に「エラーあり」と表示するようにしてみます。</p>



<p></p>



<p>答え：=IFERROR(B3+D3,&#8221;エラーあり&#8221;)</p>



<p></p>



<h3 class="wp-block-heading"><span id="toc8">・練習問題②</span></h3>



<p>では他の関数も交えて練習してみましょう。下図をご覧ください。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="432" height="241" src="https://dokugakuexcel.com/wp-content/uploads/2021/08/image-95.png" alt="" class="wp-image-1120" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/08/image-95.png 432w, https://dokugakuexcel.com/wp-content/uploads/2021/08/image-95-300x167.png 300w, https://dokugakuexcel.com/wp-content/uploads/2021/08/image-95-120x68.png 120w, https://dokugakuexcel.com/wp-content/uploads/2021/08/image-95-160x90.png 160w, https://dokugakuexcel.com/wp-content/uploads/2021/08/image-95-320x180.png 320w" sizes="(max-width: 432px) 100vw, 432px" /></figure>



<p>数値が1から5まであり、通常時は「最大値」。</p>



<p>エラーがあれば「 数値を確認してください 」と表示してみましょう。。</p>



<p>結果の出力はC8に行うこととします。</p>



<p></p>



<p>答え：=IFERROR(MAX(C3:C7),&#8221;数値を確認してください&#8221;)</p>



<p></p>



<p></p>



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



<p>いかがだったでしょうか。<br>関数を使用するうえでエラーは誰もが頭を悩ませる問題です。<br>ここでエラー時の対応をフォローできていれば、良いファイルになること間違いなしです。</p>



<p>IF関数の流れを一通り理解したことで<br>次回からIF関数+○○関数といった、複合型の関数について説明できればと思います。</p>



<p></p>



<p>合計ではSUMIF関数、平均ではAVERAGEIF関数などありますね。</p>



<p></p>



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



<p></p>



<p class="has-text-align-center">このサイトでは独学でエクセルの技術を磨くことができます。基本操作やVBA、関数を随時更新中です。</p>



<p class="has-text-align-center">関数の使い方や効果を、実際のエクセルを使用してわかりやすくしています。</p>



<p class="has-text-align-center">いつかはエクセルの教科書のようなサイトを目指してます。<br>コメントで知りたいことや悩みなど記入していただければお答えしていきます。<br>ぜひ、ほかの記事もご覧ください。皆様の参考になれれば幸いです！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90iferror%e9%96%a2%e6%95%b0%e3%80%91%e3%82%a8%e3%82%af%e3%82%bb%e3%83%ab%e3%81%a7%e3%81%ae%e3%82%a8%e3%83%a9%e3%83%bc%e6%99%82%e3%81%ae%e5%af%be%e5%bf%9c%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">144</post-id>	</item>
	</channel>
</rss>
