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

<channel>
	<title>検索・置換  |  独学エクセル塾</title>
	<atom:link href="https://dokugakuexcel.com/category/%e3%83%9e%e3%82%af%e3%83%advba/%e6%a4%9c%e7%b4%a2%e3%83%bb%e7%bd%ae%e6%8f%9b/feed/" rel="self" type="application/rss+xml" />
	<link>https://dokugakuexcel.com</link>
	<description>初心者から中級者までシステム・関数・VBAを伝授します</description>
	<lastBuildDate>Thu, 13 Jul 2023 07:17:21 +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練習問題18】数式の判別・判定！数式が含まれているセルの個数をカウントする</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%b7%b4%e7%bf%92%e5%95%8f%e9%a1%8c18%e3%80%91%e6%95%b0%e5%bc%8f%e3%81%ae%e5%88%a4%e5%88%a5%e3%83%bb%e5%88%a4%e5%ae%9a%ef%bc%81%e6%95%b0%e5%bc%8f%e3%81%8c/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e7%25b7%25b4%25e7%25bf%2592%25e5%2595%258f%25e9%25a1%258c18%25e3%2580%2591%25e6%2595%25b0%25e5%25bc%258f%25e3%2581%25ae%25e5%2588%25a4%25e5%2588%25a5%25e3%2583%25bb%25e5%2588%25a4%25e5%25ae%259a%25ef%25bc%2581%25e6%2595%25b0%25e5%25bc%258f%25e3%2581%258c</link>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Wed, 05 Jul 2023 13:37:43 +0000</pubDate>
				<category><![CDATA[検索・置換]]></category>
		<category><![CDATA[計算・関数]]></category>
		<category><![CDATA[マクロVBA練習問題]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[練習問題]]></category>
		<category><![CDATA[Formula]]></category>
		<category><![CDATA[数式]]></category>
		<category><![CDATA[識別]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=4404</guid>

					<description><![CDATA[目次 練習問題と内容について・練習問題の狙い・練習問題18について練習問題の内容と動作説明問題内容動作説明ヒント・ヒントその1・ヒントその2・ヒントその3解答コード・回答その①・回答その②必要な知識ループ構造HasFor [&#8230;]]]></description>
										<content:encoded><![CDATA[
  <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">練習問題と内容について</a><ol><li><a href="#toc2" tabindex="0">・練習問題の狙い</a></li><li><a href="#toc3" tabindex="0">・練習問題18について</a></li></ol></li><li><a href="#toc4" tabindex="0">練習問題の内容と動作説明</a><ol><li><a href="#toc5" tabindex="0">問題内容</a></li><li><a href="#toc6" tabindex="0">動作説明</a></li></ol></li><li><a href="#toc7" tabindex="0">ヒント</a><ol><li><a href="#toc8" tabindex="0">・ヒントその1</a></li><li><a href="#toc9" tabindex="0">・ヒントその2</a></li><li><a href="#toc10" tabindex="0">・ヒントその3</a></li></ol></li><li><a href="#toc11" tabindex="0">解答コード</a><ol><li><a href="#toc12" tabindex="0">・回答その①</a></li><li><a href="#toc13" tabindex="0">・回答その②</a></li></ol></li><li><a href="#toc14" tabindex="0">必要な知識</a><ol><li><a href="#toc15" tabindex="0">ループ構造</a></li><li><a href="#toc16" tabindex="0">HasFormulaプロパティ</a></li></ol></li><li><a href="#toc17" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">練習問題と内容について</span></h2>
<!-- /wp:post-content -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><span id="toc2">・練習問題の狙い</span></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>このシリーズでは課題を元にマクロVBAを<span class="marker-under-red"><strong>実践することでスキルを身につける</strong></span>ことが出来ます。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>正直、ソースコード作成については実践あるのみです！</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>答えのコードについては数例挙げますが、「もっといい答えがある」などの意見があれば</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>問い合わせから連絡ください！  </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>こんな問題を作ってほしいなどの意見もお待ちしております！</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph /-->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><span id="toc3">・練習問題18について</span></h3>
<p>こちらはマクロVBAの知識で少し発展した課題になります。</p>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><span class="marker-under"><strong>指定されたセルのうち、数式が含まれているセルの個数を表示する練習問題</strong></span>となります。</p>
<p>それでは頑張っていきましょう！</p>
<h2 class="wp-block-heading"><span id="toc4">練習問題の内容と動作説明</span></h2>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><span id="toc5">問題内容</span></h3>
<p>セル番地<span class="marker-under"><strong>A1からA10までのセルのうち、数式が含まれているセルの個数を表示</strong></span>する。</p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-4405 " src="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-32.png" width="671" height="402" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-32.png 830w, https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-32-300x180.png 300w, https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-32-768x460.png 768w" sizes="(max-width: 671px) 100vw, 671px" /></p>
<h3 class="wp-block-heading"><span id="toc6">動作説明</span></h3>
<p>VBAを使用して、指定されたセル範囲内に含まれる数式を検出し、その数をカウントして表示します。</p>
<p>この問題では、セル番地A1からA10までのセルのうち、数式が含まれているセルの個数を求める必要があります。</p>
<h2 class="wp-block-heading"><span id="toc7">ヒント</span></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><img decoding="async" class="alignnone  wp-image-4222" src="https://dokugakuexcel.com/wp-content/uploads/2023/06/25232784_m-300x200.jpg" alt="" width="458" height="305" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/06/25232784_m-300x200.jpg 300w, https://dokugakuexcel.com/wp-content/uploads/2023/06/25232784_m-1024x683.jpg 1024w, https://dokugakuexcel.com/wp-content/uploads/2023/06/25232784_m-768x512.jpg 768w, https://dokugakuexcel.com/wp-content/uploads/2023/06/25232784_m-1536x1024.jpg 1536w, https://dokugakuexcel.com/wp-content/uploads/2023/06/25232784_m.jpg 1920w" sizes="(max-width: 458px) 100vw, 458px" /> <br />以下のヒントを参考にして解答コードを作成してみてください。</p>
<h3><span id="toc8">・ヒントその1</span></h3>
<p>セルに値を表示するためには、Rangeオブジェクトを使用します。<br />セル番地を指定して該当するセルオブジェクトを取得し、計算する必要があります。</p>
<p>セル範囲を指定するには、<span class="marker-under"><strong>Range(&#8220;D1:D5&#8221;)というように範囲の開始セルと終了セルを指定</strong></span>します</p>
<h3><span id="toc9">・ヒントその2</span></h3>
<p>セルの<span class="marker-under"><strong>数式を判定</strong></span>するためには、<span class="marker-under"><strong>RangeオブジェクトのHasFormulaプロパティ</strong></span>を使用します。</p>
<p>数式が含まれている場合、Formulaプロパティはその数式を返します。</p>
<p>使用方法は下記の通りです。</p>
<div class="information-box common-icon-box">If <span style="color: #ff0000;"><strong>対象のセル</strong></span>.<span class="marker-under"><strong>HasFormula</strong></span> Then<br />　’数式だった場合の処理<br />End If</div>
<h3><span id="toc10">・ヒントその3</span></h3>
<p>ループを使用してセルを一つずつ調べ、数式が含まれているセルをカウントします。</p>
<p>カウンター変数を使い、数式が含まれているセルが見つかるたびにカウントアップします。</p>
<p>&nbsp;</p>
<p>以上のヒントを参考に課題に取り組んでみてください！</p>
<p>&nbsp;</p>
<div class="blank-box bb-tab bb-good bb-red">最新・便利な機能を搭載したExcel・officeを試しませんか？ <br />Excel 2013以下を使用している方はサポートが終了しているので注意が必要です！<br /><a href="https://dokugakuexcel.com/excel%e3%83%bboffice%e3%81%ae%e4%be%a1%e6%a0%bc%e6%af%94%e8%bc%83%ef%bc%81%e3%81%82%e3%81%aa%e3%81%9f%e3%81%ab%e5%90%88%e3%81%a3%e3%81%9f%e3%82%aa%e3%82%b9%e3%82%b9%e3%83%a1%e3%81%ae%e8%a3%bd%e5%93%81/">【最新2023年】Excel・Officeの価格比較！あなたに合ったオススメの製品の選定方法から購入 ► 独学エクセル塾 (dokugakuexcel.com)</a></div>
<div> </div>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><span id="toc11">解答コード</span></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>では回答を見ていきましょう！</p>
<p><img decoding="async" class="alignnone  wp-image-4274" src="https://dokugakuexcel.com/wp-content/uploads/2023/06/23623728-300x225.jpg" alt="" width="399" height="299" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/06/23623728-300x225.jpg 300w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23623728-1024x768.jpg 1024w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23623728-768x576.jpg 768w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23623728-1536x1152.jpg 1536w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23623728.jpg 1600w" sizes="(max-width: 399px) 100vw, 399px" /></p>
<h3><span id="toc12">・回答その①</span></h3>
<div class="blank-box bb-tab bb-check bb-blue">
<p>Sub Exercise18to1()<br />Dim <strong><span style="color: #3366ff;">cell</span> </strong>As Range<br />Dim <strong><span style="color: #ff0000;">formulaCount</span> </strong>As Integer<br /><br /><strong><span style="color: #ff0000;">formulaCount</span> </strong>= 0<br /><br />For Each <strong><span style="color: #3366ff;">cell</span> </strong>In Range(&#8220;A1:A10&#8221;)<br />If <strong><span style="color: #3366ff;">cell</span> </strong>.<span class="marker-under"><strong>HasFormula</strong></span> Then<br /><strong><span style="color: #ff0000;">formulaCount</span> </strong>= <strong><span style="color: #ff0000;">formulaCount</span> </strong>+ 1<br />End If<br />Next <strong><span style="color: #3366ff;">cell</span> </strong><br /><br />Range(&#8220;C2&#8221;).Value = <strong><span style="color: #ff0000;">formulaCount</span> </strong><br />End Sub</p>
</div>
<div class="st-yellow">
<p>上記のコードは、セル番地A1からA10までのセルのうち、数式が含まれているセルの個数を表示するVBAのマクロです。</p>
<p>この解答コードでは、ループを使用して指定されたセル範囲内の各セルを調べ、<br /><span class="marker-under"><strong>HasFormulaプロパティを使用して数式が含まれているかどうかを判定</strong></span>しています。</p>
<p>数式が含まれている場合、<strong><span style="color: #ff0000;">formulaCount</span> </strong>変数をカウントアップします。</p>
<p>最後に、C2に数式が含まれるセルの個数を表示します。</p>
<p>それでは実行してみましょう。<br />結果はこのようになります。</p>
<p><img decoding="async" width="593" height="315" class="alignnone wp-image-4406 size-full" src="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-33.png" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-33.png 593w, https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-33-300x159.png 300w" sizes="(max-width: 593px) 100vw, 593px" /></p>
<p><span class="marker-under"><strong>A1からA10のうち、数式は「4つ」</strong></span>あることがわかりました。<br />A2.A3.A6.A7で数式を使用しているので上手く機能していますね。</p>
</div>
<h3><span id="toc13">・回答その②</span></h3>
<div class="blank-box bb-tab bb-check bb-blue">
<p>Sub Exercise18to2()<br />Dim <strong><span style="color: #ff0000;">formulaCount</span> </strong> As Integer<br />Dim i As Integer<br /><br /><strong><span style="color: #ff0000;">formulaCount</span> </strong>= 0<br /><br />For i = 1 To 10<br />If Cells(i, 1).<span class="marker-under"><strong>HasFormula</strong></span> Then<br /><strong><span style="color: #ff0000;">formulaCount</span> </strong>= <strong><span style="color: #ff0000;">formulaCount</span> </strong>+ 1<br />End If<br />Next i<br /><br />Range(&#8220;C2&#8221;).Value = <strong><span style="color: #ff0000;">formulaCount</span> </strong><br />End Sub</p>
</div>
<div>
<p>上記のコードでは、Cells関数を使用してセルの範囲を指定し、HasFormulaプロパティを使用して数式の有無を判定しています。</p>
<p>ループを使用してセルを一つずつ調べ、数式が含まれている場合には、<strong><span style="color: #ff0000;">formulaCount</span></strong>変数をカウントアッップします。</p>
<p>回答その①と異なる点はループの方法です。<br />先ほどは「For Eachループ」を使用しましたが、<span class="marker-under-red"><strong>今回は「For Nextループ」を使用</strong></span>しています。</p>
</div>
<p>&nbsp;</p>
<p>  <img decoding="async" id="thepasted-1" class="alignnone  wp-image-4221" src="https://dokugakuexcel.com/wp-content/uploads/2023/06/23195909-300x225.png" alt="" width="436" height="327" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/06/23195909-300x225.png 300w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23195909-1024x768.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23195909-768x576.png 768w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23195909-1536x1152.png 1536w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23195909.png 1600w" sizes="(max-width: 436px) 100vw, 436px" /></p>
<h2 class="wp-block-heading"><span id="toc14">必要な知識</span></h2>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>この問題を解くためには、以下の基本的な知識が必要です。</p>
<h3><span id="toc15">ループ構造</span></h3>
<p>練習問題で使用した繰り返し処理を行うためにはループ構造が必要です。 <br />For Nextループを使った反復処理や、Forループを使ったカウンターを利用した反復処理について理解しておくと良いでしょう。</p>
<div class="information-box common-icon-box"><a href="https://dokugakuexcel.com/%e3%80%90vba%e7%9f%a5%e8%ad%98-7%e3%80%91fornext%e3%81%a7%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e6%95%b0%e5%80%a4%e3%81%a7%e7%b9%b0%e3%82%8a%e8%bf%94%e3%81%97%e3%83%bb%e3%83%ab%e3%83%bc/">【マクロVBA】For…Nextで指定した数値で繰り返し・ループをする方法と途中で抜け出す方法 ► 独学エクセル塾 (dokugakuexcel.com)</a></div>
<div class="information-box common-icon-box"><a href="https://dokugakuexcel.com/%e3%80%90vba%e7%9f%a5%e8%ad%98-10%e3%80%91for-eath-%e3%81%a7%e9%85%8d%e5%88%97%e3%83%bb%e3%82%b3%e3%83%ac%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3%e5%86%85%e3%81%a7%e7%b9%b0%e3%82%8a%e8%bf%94%e3%81%97/">【マクロVBA】For Eath Nextで配列・コレクション内で繰り返し・ループ処理!抜け出す方法 ► 独学エクセル塾 (dokugakuexcel.com)</a></div>
<p>これらの知識を応用して、問題を解くためのコードを作成しましょう。  </p>
<h3><span id="toc16">HasFormulaプロパティ</span></h3>
<p>セルが数式を持っているかどうかを判定するために、HasFormulaプロパティを使用します。</p>
<p>セルのHasFormulaプロパティは、セルが数式を持っている場合にTrueを返します。</p>
<div class="information-box common-icon-box"><a href="https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e3%82%bb%e3%83%ab%e3%81%8c%e6%95%b0%e5%bc%8f%e3%82%92%e5%90%ab%e3%82%93%e3%81%a7%e3%81%84%e3%82%8b%e3%81%8b%e5%88%a4%e6%96%ad%e3%83%bb%e5%88%a4/">【マクロVBA】セルが数式を含んでいるか判断・判定する方法！HasFormula関数で簡単チェック！ ► 独学エクセル塾 (dokugakuexcel.com)</a></div>
<h2 class="wp-block-heading"><span id="toc17">まとめ</span></h2>
<p>この練習問題では、VBAを使用してセル番地A1からA10までのセルのうち、数式が含まれているセルの個数を求める方法について学びました。</p>
<p>具体的には、Rangeオブジェクトとループ構造を組み合わせて、セルの範囲内に数式が含まれているかどうかを判定し、<br />数式が含まれているセルの個数をカウントしました。</p>
<p>VBAを使うことで、Excelの操作をより効率的に行うことができます。</p>
<p>この練習問題を通じて、ループ構造やRangeオブジェクトの使用方法を習得し、さらに応用的な操作や処理にも挑戦していきましょう。</p>
<p>次の練習問題では、さらに複雑なVBAの使用例に取り組んでいきますので、順番に解いていくことでスキルを向上させていきましょう。</p>
<p>以上が練習問題18となります。お疲れ様でした！</p>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4404</post-id>	</item>
		<item>
		<title>【マクロVBA練習問題17】指定・対象の文字・数値を含んでいるか、確認しカウントする方法</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%b7%b4%e7%bf%92%e5%95%8f%e9%a1%8c17%e3%80%91%e6%8c%87%e5%ae%9a%e3%83%bb%e5%af%be%e8%b1%a1%e3%81%ae%e6%96%87%e5%ad%97%e3%83%bb%e6%95%b0%e5%80%a4%e3%82%92/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e7%25b7%25b4%25e7%25bf%2592%25e5%2595%258f%25e9%25a1%258c17%25e3%2580%2591%25e6%258c%2587%25e5%25ae%259a%25e3%2583%25bb%25e5%25af%25be%25e8%25b1%25a1%25e3%2581%25ae%25e6%2596%2587%25e5%25ad%2597%25e3%2583%25bb%25e6%2595%25b0%25e5%2580%25a4%25e3%2582%2592</link>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Tue, 04 Jul 2023 15:14:39 +0000</pubDate>
				<category><![CDATA[検索・置換]]></category>
		<category><![CDATA[文字操作]]></category>
		<category><![CDATA[マクロVBA練習問題]]></category>
		<category><![CDATA[InStr]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[文字]]></category>
		<category><![CDATA[練習問題]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=4396</guid>

					<description><![CDATA[目次 練習問題と内容について・練習問題の狙い・練習問題17について練習問題の内容と動作説明問題内容動作説明ヒント・ヒントその1・ヒントその2・ヒントその3解答コード・回答その①・回答その②必要な知識ループ構造文字列の検索 [&#8230;]]]></description>
										<content:encoded><![CDATA[
  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">練習問題と内容について</a><ol><li><a href="#toc2" tabindex="0">・練習問題の狙い</a></li><li><a href="#toc3" tabindex="0">・練習問題17について</a></li></ol></li><li><a href="#toc4" tabindex="0">練習問題の内容と動作説明</a><ol><li><a href="#toc5" tabindex="0">問題内容</a></li><li><a href="#toc6" tabindex="0">動作説明</a></li></ol></li><li><a href="#toc7" tabindex="0">ヒント</a><ol><li><a href="#toc8" tabindex="0">・ヒントその1</a></li><li><a href="#toc9" tabindex="0">・ヒントその2</a></li><li><a href="#toc10" tabindex="0">・ヒントその3</a></li></ol></li><li><a href="#toc11" tabindex="0">解答コード</a><ol><li><a href="#toc12" tabindex="0">・回答その①</a></li><li><a href="#toc13" tabindex="0">・回答その②</a></li></ol></li><li><a href="#toc14" tabindex="0">必要な知識</a><ol><li><a href="#toc15" tabindex="0">ループ構造</a></li><li><a href="#toc16" tabindex="0">文字列の検索</a></li></ol></li><li><a href="#toc17" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">練習問題と内容について</span></h2>
<!-- /wp:post-content -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><span id="toc2">・練習問題の狙い</span></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>このシリーズでは課題を元にマクロVBAを<span class="marker-under-red"><strong>実践することでスキルを身につける</strong></span>ことが出来ます。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>正直、ソースコード作成については実践あるのみです！</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>答えのコードについては数例挙げますが、「もっといい答えがある」などの意見があれば</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>問い合わせから連絡ください！  </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>こんな問題を作ってほしいなどの意見もお待ちしております！</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph /-->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><span id="toc3">・練習問題17について</span></h3>
<p>こちらはマクロVBAの知識で少し発展した課題になります。</p>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><span class="marker-under"><strong>指定されたセルのうち、対象の文字を含んでいるセルの数を表示する練習問題</strong></span>となります。</p>
<p>それでは頑張っていきましょう！</p>
<h2 class="wp-block-heading"><span id="toc4">練習問題の内容と動作説明</span></h2>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><span id="toc5">問題内容</span></h3>
<p>セル番地A<span class="marker-under"><strong>1からA10までのセルのうち、「A」の文字が含まれているセルの個数を表示</strong></span>する</p>
<p><img decoding="async" width="853" height="392" class="alignnone wp-image-4397 size-full" src="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-30.png" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-30.png 853w, https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-30-300x138.png 300w, https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-30-768x353.png 768w" sizes="(max-width: 853px) 100vw, 853px" /></p>
<h3 class="wp-block-heading"><span id="toc6">動作説明</span></h3>
<p>VBAを使用して、セル番地A1からA10までのセルのなかで、セル内の文字列に「A」が含まれているかどうかを確認します。</p>
<p>含まれている場合はカウントし、最終的な結果として含まれているセルの個数を表示します。</p>
<h2 class="wp-block-heading"><span id="toc7">ヒント</span></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><img decoding="async" class="alignnone  wp-image-4222" src="https://dokugakuexcel.com/wp-content/uploads/2023/06/25232784_m-300x200.jpg" alt="" width="458" height="305" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/06/25232784_m-300x200.jpg 300w, https://dokugakuexcel.com/wp-content/uploads/2023/06/25232784_m-1024x683.jpg 1024w, https://dokugakuexcel.com/wp-content/uploads/2023/06/25232784_m-768x512.jpg 768w, https://dokugakuexcel.com/wp-content/uploads/2023/06/25232784_m-1536x1024.jpg 1536w, https://dokugakuexcel.com/wp-content/uploads/2023/06/25232784_m.jpg 1920w" sizes="(max-width: 458px) 100vw, 458px" /> <br />以下のヒントを参考にして解答コードを作成してみてください。</p>
<h3><span id="toc8">・ヒントその1</span></h3>
<p>セルに値を表示するためには、Rangeオブジェクトを使用します。<br />セル番地を指定して該当するセルオブジェクトを取得し、計算する必要があります。</p>
<p>セル範囲を指定するには、<span class="marker-under"><strong>Range(&#8220;D1:D5&#8221;)というように範囲の開始セルと終了セルを指定</strong></span>します</p>
<h3><span id="toc9">・ヒントその2</span></h3>
<p>セルを順次、確認するためには、<span class="marker-under"><strong>ループ構造を使用</strong></span>します。<br />For文を使って、A1からA10までのセルを順番に処理します。</p>
<h3><span id="toc10">・ヒントその3</span></h3>
<p>文字列内に特定の文字が含まれているかどうかを確認するためには、<span class="marker-under"><strong>InStr関数</strong></span>を使用します。</p>
<p>構文は下記の通りです。</p>
<div class="alert-box common-icon-box"><strong>InStr(<span class="bold-green">[検索開始位置]</span>,<span class="bold-red">検索対象</span>,<span class="bold-blue">検索文字・数値</span>,<span class="bold-green">[検索の種類]</span>)</strong></div>
<p>例えば、<span class="marker-under-red"><strong>InStr(<span style="color: #339966;">1</span>, &#8220;<span style="color: #ff0000;">ABC</span>&#8220;, &#8220;<span style="color: #00ccff;">A</span>&#8220;)は文字列「ABC」内に「A」が含まれているかを調べる</strong></span>ことができます。</p>
<p>&nbsp;</p>
<p>以上のヒントを参考に課題に取り組んでみてください！</p>
<p>&nbsp;</p>
<div class="blank-box bb-tab bb-good bb-red">最新・便利な機能を搭載したExcel・officeを試しませんか？ <br />Excel 2013以下を使用している方はサポートが終了しているので注意が必要です！<br /><a href="https://dokugakuexcel.com/excel%e3%83%bboffice%e3%81%ae%e4%be%a1%e6%a0%bc%e6%af%94%e8%bc%83%ef%bc%81%e3%81%82%e3%81%aa%e3%81%9f%e3%81%ab%e5%90%88%e3%81%a3%e3%81%9f%e3%82%aa%e3%82%b9%e3%82%b9%e3%83%a1%e3%81%ae%e8%a3%bd%e5%93%81/">【最新2023年】Excel・Officeの価格比較！あなたに合ったオススメの製品の選定方法から購入 ► 独学エクセル塾 (dokugakuexcel.com)</a></div>
<div> </div>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><span id="toc11">解答コード</span></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>では回答を見ていきましょう！</p>
<p><img decoding="async" class="alignnone  wp-image-4274" src="https://dokugakuexcel.com/wp-content/uploads/2023/06/23623728-300x225.jpg" alt="" width="399" height="299" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/06/23623728-300x225.jpg 300w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23623728-1024x768.jpg 1024w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23623728-768x576.jpg 768w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23623728-1536x1152.jpg 1536w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23623728.jpg 1600w" sizes="(max-width: 399px) 100vw, 399px" /></p>
<h3><span id="toc12">・回答その①</span></h3>
<div class="blank-box bb-tab bb-check bb-blue">
<p>Sub Exercise17to1()<br />Dim <strong><span style="color: #ff0000;">count</span> </strong>As Integer<br /><strong><span style="color: #ff0000;">count</span> </strong>= 0<br /><br />For i = 1 To 10<br />If <strong><span style="color: #3366ff;">InStr</span></strong>(1, Cells(i, 1).Value, &#8220;A&#8221;) &gt; 0 Then<br /><strong><span style="color: #ff0000;">count</span> </strong>= <strong><span style="color: #ff0000;">count</span> </strong>+ 1<br />End If<br />Next i<br /><br />Range(&#8220;C2&#8221;).Value = <strong><span style="color: #ff0000;">count</span> </strong><br />End Sub</p>
</div>
<div class="st-yellow">
<p>上記のコードは、セル番地A1からA10までのセルを走査し、「A」の文字が含まれているセルの個数を表示するVBAのマクロです。</p>
</div>
<div class="st-yellow blank-box sticky">
<p><span class="marker-under-blue"><strong>解答コードの解説</strong></span><br />1. count変数を宣言し、0で初期化します。この変数は含まれているセルの個数をカウントします。<br />2. Forループを使用して、A1からA10までのセルを順番に処理します。<br />3. InStr関数を使用して、セル内の文字列に「A」が含まれているかどうかを確認します。<br />　 InStr関数は、対象の文字列内に指定した文字が含まれている場合はその位置を返し、含まれていない場合は0を返します。<br />4. もしセル内に「A」が含まれている場合、count変数をインクリメントします。<br />5. ループの終了後、C2にセルの個数を表示します。</p>
</div>
<p>それでは実行してみましょう。<br />結果はこのようになります。</p>
<p><img decoding="async" width="410" height="319" class="alignnone wp-image-4398 size-full" src="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-31.png" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-31.png 410w, https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-31-300x233.png 300w" sizes="(max-width: 410px) 100vw, 410px" /></p>
<p><span class="marker-under"><strong>A1からA10で「A」の文字を含むセル</strong></span><span class="marker-under"><strong>の数は「3セル」</strong></span>ということがわかりました。</p>
<h3><span id="toc13">・回答その②</span></h3>
<div class="blank-box bb-tab bb-check bb-blue">
<p>Sub Exercise17to2()<br />Dim <strong><span style="color: #ff0000;">count</span> </strong>As Integer<br /><strong><span style="color: #ff0000;">count</span> </strong>= 0<br /><br />For Each cell In Range(&#8220;A1:A10&#8221;)<br />If <strong><span style="color: #3366ff;">InStr</span></strong>(1, cell.Value, &#8220;A&#8221;) &gt; 0 Then<br /><strong><span style="color: #ff0000;">count</span> </strong>= <strong><span style="color: #ff0000;">count</span> </strong>+ 1<br />End If<br />Next cell<br /><br />Range(&#8220;C2&#8221;).Value = <strong><span style="color: #ff0000;">count</span> </strong><br />End Sub</p>
</div>
<div>
<p>&nbsp;</p>
<p>上記のコードでは、For Each文を使用してセル範囲A1からA10までの各セルを順番に処理しています。</p>
<p>それぞれのセルの値に対して、InStr関数を使用して「A」の文字の存在を確認し、含まれている場合はカウントします。<br />最終的な結果として、含まれているセルの個数をC2に表示します。</p>
</div>
<p>&nbsp;</p>
<p>  <img decoding="async" id="thepasted-1" class="alignnone  wp-image-4221" src="https://dokugakuexcel.com/wp-content/uploads/2023/06/23195909-300x225.png" alt="" width="436" height="327" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/06/23195909-300x225.png 300w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23195909-1024x768.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23195909-768x576.png 768w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23195909-1536x1152.png 1536w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23195909.png 1600w" sizes="(max-width: 436px) 100vw, 436px" /></p>
<h2 class="wp-block-heading"><span id="toc14">必要な知識</span></h2>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>この問題を解くためには、以下の基本的な知識が必要です。</p>
<h3><span id="toc15">ループ構造</span></h3>
<p>練習問題で使用した繰り返し処理を行うためにはループ構造が必要です。<br />For Nextループを使った反復処理や、Forループを使ったカウンターを利用した反復処理について理解しておくと良いでしょう。</p>
<div class="information-box common-icon-box"><a href="https://dokugakuexcel.com/%e3%80%90vba%e7%9f%a5%e8%ad%98-7%e3%80%91fornext%e3%81%a7%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e6%95%b0%e5%80%a4%e3%81%a7%e7%b9%b0%e3%82%8a%e8%bf%94%e3%81%97%e3%83%bb%e3%83%ab%e3%83%bc/">【マクロVBA】For…Nextで指定した数値で繰り返し・ループをする方法と途中で抜け出す方法 ► 独学エクセル塾 (dokugakuexcel.com)</a></div>
<div class="information-box common-icon-box"><a href="https://dokugakuexcel.com/%e3%80%90vba%e7%9f%a5%e8%ad%98-10%e3%80%91for-eath-%e3%81%a7%e9%85%8d%e5%88%97%e3%83%bb%e3%82%b3%e3%83%ac%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3%e5%86%85%e3%81%a7%e7%b9%b0%e3%82%8a%e8%bf%94%e3%81%97/">【マクロVBA】For Eath Nextで配列・コレクション内で繰り返し・ループ処理!抜け出す方法 ► 独学エクセル塾 (dokugakuexcel.com)</a></div>
<p>これらの知識を応用して、問題を解くためのコードを作成しましょう。  </p>
<h3><span id="toc16">文字列の検索</span></h3>
<p>文字列内に特定の文字や文字列が含まれているかどうかを確認するためには、InStr関数を使用します。</p>
<p>InStr関数は、検索対象の文字列内で指定した文字や文字列が最初に出現する位置を返します。<br />もし見つからない場合は0を返します。</p>
<p>使用方法は下記の通りです。</p>
<div class="alert-box common-icon-box"><strong>InStr(<span class="bold-green">[検索開始位置]</span>,<span class="bold-red">検索対象</span>,<span class="bold-blue">検索文字・数値</span>,<span class="bold-green">[検索の種類]</span>)</strong></div>
<div>詳しい説明は下記記事を参照してください。</div>
<div class="information-box common-icon-box"><a href="https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%af%be%e8%b1%a1%e3%81%ae%e6%96%87%e5%ad%97%e3%81%8c%e4%bd%95%e5%80%8b%e3%83%bb%e4%bd%95%e6%96%87%e5%ad%97%e3%81%82%e3%82%8b%e3%81%8binstr%e9%96%a2/">【マクロVBA】対象の文字が何個・何文字あるかInStr関数で求める！変数・セルに対応 ► 独学エクセル塾 (dokugakuexcel.com)</a></div>
<h2 class="wp-block-heading"><span id="toc17">まとめ</span></h2>
<p>この練習問題では、VBAを使用してExcelの操作を行いました。具体的には、セルに値を入力したり、セル範囲を走査したりする問題を解きました。</p>
<p>練習問題17では、セル番地A1からA10までのセルのうち、「A」の文字が含まれているセルの個数を表示することを目標としました。</p>
<p>解答コードでは、ForループやFor Eachループを使用してセルを走査し、InStr関数を使って文字列内に「A」が含まれているかを判定しました。</p>
<p>必要な知識として、ループ構造の理解やセルの値の取得方法、文字列の検索方法が重要でした。<br />これらの知識を活用することで、Excelの操作を効率的に行うことができます。</p>
<p>練習問題を通じて、VBAの基本的な構文や関数の使い方を練習することができました。<br />続く問題では、さらに応用的な操作や複雑な問題に挑戦してみることができます。</p>
<p>&nbsp;</p>
<p>以上が練習問題17となります。お疲れ様でした！</p>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4396</post-id>	</item>
		<item>
		<title>【マクロVBA練習問題16】空白セルのカウント！対象範囲に空白のセルが何個あるか数える方法</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%b7%b4%e7%bf%92%e5%95%8f%e9%a1%8c16%e3%80%91%e7%a9%ba%e7%99%bd%e3%82%bb%e3%83%ab%e3%81%ae%e3%82%ab%e3%82%a6%e3%83%b3%e3%83%88%ef%bc%81%e5%af%be%e8%b1%a1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e7%25b7%25b4%25e7%25bf%2592%25e5%2595%258f%25e9%25a1%258c16%25e3%2580%2591%25e7%25a9%25ba%25e7%2599%25bd%25e3%2582%25bb%25e3%2583%25ab%25e3%2581%25ae%25e3%2582%25ab%25e3%2582%25a6%25e3%2583%25b3%25e3%2583%2588%25ef%25bc%2581%25e5%25af%25be%25e8%25b1%25a1</link>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Tue, 04 Jul 2023 14:08:47 +0000</pubDate>
				<category><![CDATA[計算・関数]]></category>
		<category><![CDATA[マクロVBA練習問題]]></category>
		<category><![CDATA[検索・置換]]></category>
		<category><![CDATA[練習問題]]></category>
		<category><![CDATA[空白セル]]></category>
		<category><![CDATA[IsEmpty]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[COUNTBLANK]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=4391</guid>

					<description><![CDATA[目次 練習問題と内容について・練習問題の狙い・練習問題16について練習問題の内容と動作説明問題内容動作説明ヒント・ヒントその1・ヒントその2・ヒントその3解答コード・回答その①・回答その②必要な知識セルの判定Worksh [&#8230;]]]></description>
										<content:encoded><![CDATA[
  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">練習問題と内容について</a><ol><li><a href="#toc2" tabindex="0">・練習問題の狙い</a></li><li><a href="#toc3" tabindex="0">・練習問題16について</a></li></ol></li><li><a href="#toc4" tabindex="0">練習問題の内容と動作説明</a><ol><li><a href="#toc5" tabindex="0">問題内容</a></li><li><a href="#toc6" tabindex="0">動作説明</a></li></ol></li><li><a href="#toc7" tabindex="0">ヒント</a><ol><li><a href="#toc8" tabindex="0">・ヒントその1</a></li><li><a href="#toc9" tabindex="0">・ヒントその2</a></li><li><a href="#toc10" tabindex="0">・ヒントその3</a></li></ol></li><li><a href="#toc11" tabindex="0">解答コード</a><ol><li><a href="#toc12" tabindex="0">・回答その①</a></li><li><a href="#toc13" tabindex="0">・回答その②</a></li></ol></li><li><a href="#toc14" tabindex="0">必要な知識</a><ol><li><a href="#toc15" tabindex="0">セルの判定</a></li><li><a href="#toc16" tabindex="0">WorksheetFunctionの使用</a></li></ol></li><li><a href="#toc17" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">練習問題と内容について</span></h2>
<!-- /wp:post-content -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><span id="toc2">・練習問題の狙い</span></h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>このシリーズでは課題を元にマクロVBAを<span class="marker-under-red"><strong>実践することでスキルを身につける</strong></span>ことが出来ます。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>正直、ソースコード作成については実践あるのみです！</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>答えのコードについては数例挙げますが、「もっといい答えがある」などの意見があれば</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>問い合わせから連絡ください！  </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>こんな問題を作ってほしいなどの意見もお待ちしております！</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph /-->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><span id="toc3">・練習問題16について</span></h3>
<p>こちらはマクロVBAの知識で少し発展した課題になります。</p>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><span class="marker-under"><strong>指定されたセルを元に、空白セルの個数を表示する練習問題</strong></span>となります。</p>
<p>それでは頑張っていきましょう！</p>
<h2 class="wp-block-heading"><span id="toc4">練習問題の内容と動作説明</span></h2>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><span id="toc5">問題内容</span></h3>
<p>セル番地<span class="marker-under"><strong>A1からA10までのセルのうち、空白セルの個数を表示</strong></span>する。</p>
<p><img decoding="async" width="973" height="426" class="alignnone wp-image-4392 size-full" src="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-28.png" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-28.png 973w, https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-28-300x131.png 300w, https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-28-768x336.png 768w" sizes="(max-width: 973px) 100vw, 973px" /></p>
<h3 class="wp-block-heading"><span id="toc6">動作説明</span></h3>
<p>VBAを使用して、指定された範囲のセルのうち、空白セルの個数をカウントし、結果を表示します。</p>
<p>この問題では、セル番地A1からA10までのセルのうち、空白セルの個数を求める必要があります。</p>
<h2 class="wp-block-heading"><span id="toc7">ヒント</span></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><img decoding="async" class="alignnone  wp-image-4222" src="https://dokugakuexcel.com/wp-content/uploads/2023/06/25232784_m-300x200.jpg" alt="" width="458" height="305" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/06/25232784_m-300x200.jpg 300w, https://dokugakuexcel.com/wp-content/uploads/2023/06/25232784_m-1024x683.jpg 1024w, https://dokugakuexcel.com/wp-content/uploads/2023/06/25232784_m-768x512.jpg 768w, https://dokugakuexcel.com/wp-content/uploads/2023/06/25232784_m-1536x1024.jpg 1536w, https://dokugakuexcel.com/wp-content/uploads/2023/06/25232784_m.jpg 1920w" sizes="(max-width: 458px) 100vw, 458px" /> <br />以下のヒントを参考にして解答コードを作成してみてください。</p>
<h3><span id="toc8">・ヒントその1</span></h3>
<p>セルに値を表示するためには、Rangeオブジェクトを使用します。<br />セル番地を指定して該当するセルオブジェクトを取得し、計算する必要があります。</p>
<p>セル範囲を指定するには、<span class="marker-under"><strong>Range(&#8220;D1:D5&#8221;)というように範囲の開始セルと終了セルを指定</strong></span>します</p>
<h3><span id="toc9">・ヒントその2</span></h3>
<p>取得したデータの空白のセルを数えるには、関数を使用する必要があります。</p>
<p>例えば、<span class="marker-under"><strong>WorksheetFunction.countBlank()関数</strong></span>を使用して、セル範囲の空白をカウントすることができます。</p>
<h3><span id="toc10">・ヒントその3</span></h3>
<p>セルの値が空白かどうかを判定するためには、<span class="marker-under"><strong>IsEmpty関数</strong></span>を使用します。</p>
<p>例えば、IsEmpty(Range(&#8220;A1&#8221;))というように使います。<br /><span class="marker-under-red"><strong>IsEmpty関数は、セルが空白の場合にTrueを返します</strong></span>。</p>
<p>&nbsp;</p>
<p>以上のヒントを参考に課題に取り組んでみてください！</p>
<p>&nbsp;</p>
<div class="blank-box bb-tab bb-good bb-red">最新・便利な機能を搭載したExcel・officeを試しませんか？ <br />Excel 2013以下を使用している方はサポートが終了しているので注意が必要です！<br /><a href="https://dokugakuexcel.com/excel%e3%83%bboffice%e3%81%ae%e4%be%a1%e6%a0%bc%e6%af%94%e8%bc%83%ef%bc%81%e3%81%82%e3%81%aa%e3%81%9f%e3%81%ab%e5%90%88%e3%81%a3%e3%81%9f%e3%82%aa%e3%82%b9%e3%82%b9%e3%83%a1%e3%81%ae%e8%a3%bd%e5%93%81/">【最新2023年】Excel・Officeの価格比較！あなたに合ったオススメの製品の選定方法から購入 ► 独学エクセル塾 (dokugakuexcel.com)</a></div>
<div> </div>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading"><span id="toc11">解答コード</span></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>では回答を見ていきましょう！</p>
<p><img decoding="async" class="alignnone  wp-image-4274" src="https://dokugakuexcel.com/wp-content/uploads/2023/06/23623728-300x225.jpg" alt="" width="399" height="299" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/06/23623728-300x225.jpg 300w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23623728-1024x768.jpg 1024w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23623728-768x576.jpg 768w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23623728-1536x1152.jpg 1536w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23623728.jpg 1600w" sizes="(max-width: 399px) 100vw, 399px" /></p>
<h3><span id="toc12">・回答その①</span></h3>
<div class="blank-box bb-tab bb-check bb-blue">
<p>Sub Exercise16to1()<br /><br />Dim <strong><span style="color: #3366ff;">rng</span> </strong>As Range<br />Dim cell As Range<br />Dim <span style="color: #ff0000;"><strong>countBlank </strong></span>As Integer<br /><br />Set <strong><span style="color: #3366ff;">rng</span> </strong>= Range(&#8220;A1:A10&#8221;)<br /><span style="color: #ff0000;"><strong>countBlank </strong></span>= 0<br /><br />For Each cell In <strong><span style="color: #3366ff;">rng</span> </strong><br />　<strong><span class="marker-under">If IsEmpty(cell) Then</span></strong><br />　　<span style="color: #ff0000;"><strong>countBlank </strong></span>= <span style="color: #ff0000;"><strong>countBlank </strong></span>+ 1<br />　End If<br />Next cell<br /><br />Range(&#8220;C2&#8221;).Value = <span style="color: #ff0000;"><strong>countBlank </strong></span><br />End Sub</p>
</div>
<div>
<p>上記のコードでは、セル番地A1からA10までの範囲において空白セルの個数をカウントし、結果をC2に表示しています。</p>
<p>解答コードでは、Rangeオブジェクトを使用してセル範囲を指定し、For Eachループを使用して各セルを順に処理しています。<br /><span class="marker-under"><strong>IsEmpty関数を使ってセルが空白かどうかを判定</strong></span>し、<strong>空白の場合にはカウント変数を増やしていきます。</strong></p>
<p>最後に、空白セルの個数をC2表示しています。</p>
</div>
<p>それでは実行してみましょう。<br />結果はこのようになります。</p>
<p>&nbsp;</p>
<p><img decoding="async" width="435" height="370" class="alignnone wp-image-4393 size-full" src="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-29.png" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-29.png 435w, https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-29-300x255.png 300w" sizes="(max-width: 435px) 100vw, 435px" /></p>
<p><span class="marker-under"><strong>A1からA10の空白セルの数は「４セル」</strong></span>ということがわかりました。</p>
<h3><span id="toc13">・回答その②</span></h3>
<div class="blank-box bb-tab bb-check bb-blue">
<p>Sub Exercise16to2()<br />Dim <strong><span style="color: #3366ff;">rng</span> </strong>As Range<br />Dim <span style="color: #ff0000;"><strong>countBlank </strong></span>As Integer<br /><br />Set <strong><span style="color: #3366ff;">rng</span> </strong>= Range(&#8220;A1:A10&#8221;)<br /><span style="color: #ff0000;"><strong>countBlank </strong></span>= <span class="marker-under"><strong>WorksheetFunction.countBlank(<span style="color: #3366ff;">rng</span> )</strong></span><br /><br />Range(&#8220;C2&#8221;).Value = <span style="color: #ff0000;"><strong>countBlank </strong></span><br />End Sub</p>
</div>
<div>
<p>&nbsp;</p>
<p>解答コードでは、Rangeオブジェクトを使用してセル範囲を指定し、<br /><span class="marker-under"><strong>WorksheetFunction.CountBlankメソッドを使って空白セルの個数を取得</strong></span>しています。</p>
<p>最後に、空白セルの個数をC2表示しています。</p>
<p>WorksheetFunctionオブジェクトを使用することで、Excelの組み込み関数をVBAで利用することができるのでとても便利です！</p>
</div>
<p>&nbsp;</p>
<p>  <img decoding="async" id="thepasted-1" class="alignnone  wp-image-4221" src="https://dokugakuexcel.com/wp-content/uploads/2023/06/23195909-300x225.png" alt="" width="436" height="327" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/06/23195909-300x225.png 300w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23195909-1024x768.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23195909-768x576.png 768w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23195909-1536x1152.png 1536w, https://dokugakuexcel.com/wp-content/uploads/2023/06/23195909.png 1600w" sizes="(max-width: 436px) 100vw, 436px" /></p>
<h2 class="wp-block-heading"><span id="toc14">必要な知識</span></h2>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>この問題を解くためには、以下の基本的な知識が必要です。</p>
<h3><span id="toc15">セルの判定</span></h3>
<p>セルが空白であるかどうかを判定するために、IsEmpty関数を使用します。</p>
<p>IsEmpty関数は、<span class="marker-under"><strong>指定されたセルが空白であればTrueを返します。</strong></span></p>
<div class="information-box common-icon-box"><a href="https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e3%82%bb%e3%83%ab%e3%82%84%e5%a4%89%e6%95%b0%e3%81%8c%e7%a9%ba%e7%99%bd%e3%81%8b%e3%81%a9%e3%81%86%e3%81%8b%e3%82%92%e5%88%a4%e6%96%ad%e3%81%99/">【マクロVBA】セルや変数が空白かどうかを判断する方法！IsEmpty関数の使い方と注意点も紹介 ► 独学エクセル塾 (dokugakuexcel.com)</a></div>
<h3><span id="toc16">WorksheetFunctionの使用</span></h3>
<p>空白セルのカウントをするためには、WorksheetFunctionが必要です。 <br />下記参考記事で紹介しています！</p>
<div class="information-box common-icon-box"><a href="https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-22%e3%80%91%e3%83%af%e3%83%bc%e3%82%af%e3%82%b7%e3%83%bc%e3%83%88%e9%96%a2%e6%95%b0%e3%81%ae%e6%a9%9f%e8%83%bd%e3%82%92%e4%bd%bf%e7%94%a8/">【マクロVBA】通常のワークシート関数の機能をVBAでも使用する方法~WorksheetFunction~ ► 独学エクセル塾 (dokugakuexcel.com)</a></div>
<h2 class="wp-block-heading"><span id="toc17">まとめ</span></h2>
<p>この練習問題では、VBAを使用して指定された範囲内の空白セルの個数をカウントする方法を学びました。</p>
<p>具体的には、セル番地A1からA10までの範囲において空白セルの個数を求める問題を解きました。<br />解答コードでは、For Eachループを使用して各セルを順に処理し、IsEmpty関数を使用してセルが空白かどうかを判定しました。</p>
<p>また、別の解答としてWorksheetFunction.CountBlankメソッドを使用する方法も紹介しました。<br />このメソッドを使うことで、より簡潔に空白セルの個数を取得することができます。</p>
<p>VBAを使うことで、Excelの操作を自動化し、複雑な処理を行うことができます。<br />練習問題を通じてVBAのスキルを向上させ、より高度な操作や処理を行えるようになることを目指しましょう。</p>
<p>&nbsp;</p>
<p>以上が練習問題16となります。お疲れ様でした！</p>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4391</post-id>	</item>
		<item>
		<title>【マクロVBA】右端側・後ろから対象の文字が何文字目に含まれているか確認する！InStrRev</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%8f%b3%e7%ab%af%e5%81%b4%e3%83%bb%e5%be%8c%e3%82%8d%e3%81%8b%e3%82%89%e5%af%be%e8%b1%a1%e3%81%ae%e6%96%87%e5%ad%97%e3%81%8c%e4%bd%95%e6%96%87/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e3%2580%2591%25e5%258f%25b3%25e7%25ab%25af%25e5%2581%25b4%25e3%2583%25bb%25e5%25be%258c%25e3%2582%258d%25e3%2581%258b%25e3%2582%2589%25e5%25af%25be%25e8%25b1%25a1%25e3%2581%25ae%25e6%2596%2587%25e5%25ad%2597%25e3%2581%258c%25e4%25bd%2595%25e6%2596%2587</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%8f%b3%e7%ab%af%e5%81%b4%e3%83%bb%e5%be%8c%e3%82%8d%e3%81%8b%e3%82%89%e5%af%be%e8%b1%a1%e3%81%ae%e6%96%87%e5%ad%97%e3%81%8c%e4%bd%95%e6%96%87/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Wed, 22 Mar 2023 14:07:56 +0000</pubDate>
				<category><![CDATA[検索・置換]]></category>
		<category><![CDATA[文字操作]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[右端]]></category>
		<category><![CDATA[検索]]></category>
		<category><![CDATA[文字数]]></category>
		<category><![CDATA[後ろ]]></category>
		<category><![CDATA[InStrRev関数]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=4061</guid>

					<description><![CDATA[文字を検索する方法、または何文字目に含まれているか確認する関数として「InStr関数」があります。 こちらは、対象のセル・変数などから文字を読み取り対象の文字・数値を検索する関数となっています。 【マクロVBA】対象のセ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>文字を検索する方法、または何文字目に含まれているか確認する関数として<br>「InStr関数」があります。</p>



<p>こちらは、対象のセル・変数などから文字を読み取り<br>対象の文字・数値を検索する関数となっています。</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%af%be%e8%b1%a1%e3%81%ae%e3%82%bb%e3%83%ab%e3%83%bb%e5%a4%89%e6%95%b0%e3%81%ab%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e6%96%87%e5%ad%97%e3%83%bb/">【マクロVBA】対象のセル・変数に指定した文字・数値が含まれているかInStrで確認する ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>しかし、こちらの関数は、頭文字からの検索であり<br>場合によっては、<strong><span class="marker-under">右側・後側から検索したい場面</span></strong>がありますよね。</p>



<p>そんな時に使用できるのが「<strong><span class="marker-under">InStrRev関数</span></strong>」となっています。</p>



<p><strong><span class="marker-under-blue">InStrRev関数を使用すれば、簡単に右側から文字を検索できる</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-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">&#x2b1b;︎こんな事ができるようになる！</a></li><li><a href="#toc2" tabindex="0">&#x2b1b;︎忙しい人向けのコピペ用ソースコード</a></li><li><a href="#toc3" tabindex="0">&#x2b1b;︎構文の説明</a></li><li><a href="#toc4" tabindex="0">&#x2b1b;︎右側・後ろから指定した文字が何文字目にあるか検索する</a><ol><li><a href="#toc5" tabindex="0">・セルから文字を検索する</a></li><li><a href="#toc6" tabindex="0">・変数から検索する</a></li></ol></li><li><a href="#toc7" tabindex="0">&#x2b1b;︎応用編</a><ol><li><a href="#toc8" tabindex="0">・右端から何文字目に対象の文字があるか検索する</a></li></ol></li><li><a href="#toc9" tabindex="0">&#x2b1b;︎よくあるエラーと対処法</a><ol><li><a href="#toc10" tabindex="0">・文字が大文字・小文字で異なる</a></li><li><a href="#toc11" tabindex="0">・文字が全角・半角で異なる</a></li></ol></li><li><a href="#toc12" tabindex="0">&#x2b1b;︎公式の説明</a></li><li><a href="#toc13" 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 decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-35.png" alt="" class="wp-image-4063" width="485" height="133" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-35.png 595w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-35-300x82.png 300w" sizes="(max-width: 485px) 100vw, 485px" /></figure>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-36.png" alt="" class="wp-image-4064" width="356" height="130" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-36.png 509w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-36-300x110.png 300w" sizes="(max-width: 356px) 100vw, 356px" /></figure>



<h2 class="wp-block-heading"><span id="toc2">&#x2b1b;︎忙しい人向けのコピペ用ソースコード</span></h2>



<pre class="wp-block-verse">Sub 対象の文字が右側から何文字目か調査()
Dim N As Long
N = InStrRev(<span class="bold-red">対象のセル・変数</span>, "<span class="bold-blue">検索したい文字・数値</span>")
MsgBox "対象の文字は右側から検索すると" &amp; N &amp; "文字目にあります。"
End Sub</pre>



<p><span class="bold-red">対象のセル・変数</span>と<span class="bold-blue">検索したい文字・数値</span>をカスタムして使用してください。</p>



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



<p>まず、使用する関数についてですが「<strong><span class="marker-under">InStrRev関数</span></strong>」になります。<br>関数仕様としては下記の通りです。</p>



<p><span class="fz-20px"><strong>InStrRev(<span class="bold-red">検索対象</span>,<span class="bold-blue">検索文字・数値</span>,<span class="bold-green">[検索開始位置]</span>,<span class="bold-green">[検索の種類]</span>)</strong></span></p>



<p>「<span class="bold-green">[ ]</span>」は省略可能となっています。</p>



<p>　</p>



<p><span class="bold-green">[検索開始位置]</span>では検索を開始する位置を指定することが出来ます。<br>たとえば「<span class="bold-green">3</span>」を指定すると先頭から<span class="bold-green">3文字目を対象</span>として<br><strong><span class="marker-under">３文字目から前に検索</span></strong>します。</p>



<p>　</p>



<p><strong><span class="bold-green">[検索の種類]</span></strong>ではバイナリモードかテキストモードを<br>選択することができます。</p>



<p>バイナリモードの場合は<span class="bold-green">vbBinaryCompare</span><br>テキストモードの場合は<span class="bold-green">vbTextCompare</span>を入力します。</p>



<p>ただし、省略した場合はバイナリモードになるので<br><strong><span class="marker-under-red">バイナリモードの場合は未入力</span></strong>でかまいません。</p>



<p>各モードの検索方法は下記の通りです。</p>



<figure class="wp-block-table"><table><thead><tr><th>モード</th><th>入力文字</th><th>機能</th></tr></thead><tbody><tr><td>バイナリ</td><td>vbBinaryCompare</td><td>全角・半角の区別、大文字・小文字の区別をする</td></tr><tr><td>テキスト</td><td>vbTextCompare</td><td>全角・半角の区別、大文字・小文字の区別をしない</td></tr></tbody></table></figure>



<p></p>



<h2 class="wp-block-heading"><span id="toc4">&#x2b1b;︎右側・後ろから指定した文字が何文字目にあるか検索する</span></h2>



<h3 class="wp-block-heading"><span id="toc5">・セルから文字を検索する</span></h3>



<p>では、実際に<strong><span class="marker-under">セルから文字を読み取って右側から対象の文字を検索</span></strong>したいと思います。</p>



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



<figure class="wp-block-image size-full"><img decoding="async" width="369" height="136" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-34.png" alt="" class="wp-image-4062" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-34.png 369w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-34-300x111.png 300w" sizes="(max-width: 369px) 100vw, 369px" /></figure>



<p>セル番地「<span class="bold-red">B3</span>」に文字が入力されてあります。<br>今回は、その文字から「<span class="bold-red">C</span>」を検索して<br><strong><span class="marker-under">右側から何文字目にあるか表示</span></strong>したいと思います。</p>



<p>では、構文に当てはめていきましょう。<br><span class="fz-20px"><strong>InStrRev(<span class="bold-red">検索対象</span>,<span class="bold-blue">検索文字・数値</span>,<span class="bold-green">[検索開始位置]</span>,<span class="bold-green">[検索の種類]</span>)</strong></span></p>



<p>検索対象はセルの文字列を参照するので「<span class="bold-red">B3</span>」です。<br>検索する文字は「<span class="bold-blue">&#8220;C&#8221;</span>」なので、そのまま入力します。<br>ここで<strong><span class="marker-under-blue">「&#8221;」で囲わないと変数扱いになるので注意</span></strong>が必要です。</p>



<p>当てはめるとこのようになります。<br><strong><span class="fz-20px">InStrRev(<span class="bold-red">Range(&#8220;B3&#8221;)</span>, <span class="bold-blue">&#8220;C&#8221;</span>)</span></strong></p>



<p>では見本のソースコードをご覧ください。</p>



<pre class="wp-block-verse">Sub 対象の文字が右側から何文字目か調査()
Dim N As Long
<span class="bold-green">N</span> = InStrRev(<span class="bold-red">Range("B3")</span>, <span class="bold-blue">"C"</span>)
MsgBox "対象の文字は右側から検索すると" &amp; <span class="bold-green">N </span>&amp; "文字目にあります。"
End Sub</pre>



<p>最後に検索した結果をメッセージボックスで表示させます。</p>



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



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-35.png" alt="" class="wp-image-4063" width="529" height="145" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-35.png 595w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-35-300x82.png 300w" sizes="(max-width: 529px) 100vw, 529px" /></figure>



<p><strong><span class="marker-under">「対象の文字は右側から検索すると<span class="bold-red">6文字目</span>にあります」</span></strong>と言うメッセージが表示されました。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-36.png" alt="" class="wp-image-4064" width="367" height="134" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-36.png 509w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-36-300x110.png 300w" sizes="(max-width: 367px) 100vw, 367px" /></figure>



<p><br><strong><span class="marker-under">「C」は右側から検索すると<span class="bold-red">6文字目</span></span></strong>にあたるので<br>うまく機能していますね。</p>



<p>参考までに、<strong><span class="marker-under-red">通常のInStr関数で表示した結果</span></strong>を見てみましょう。</p>



<pre class="wp-block-verse">Sub 対象の文字が<span class="bold-red">左側</span>から何文字目か調査()
Dim N As Long
N = <span class="bold-red">InStr</span>(Range("B3"), "C")
MsgBox "対象の文字は<span class="bold-red">左側</span>から検索すると" &amp; N &amp; "文字目にあります。"
End Sub</pre>



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



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-37.png" alt="" class="wp-image-4065" width="468" height="135" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-37.png 628w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-37-300x86.png 300w" sizes="(max-width: 468px) 100vw, 468px" /></figure>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-38.png" alt="" class="wp-image-4066" width="348" height="132" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-38.png 509w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-38-300x114.png 300w" sizes="(max-width: 348px) 100vw, 348px" /></figure>



<p>先ほどとは異なり、<strong><span class="marker-under-red">左から検索するので「<span class="bold-red">２文字目</span>」という結果</span></strong>となりました。</p>



<h3 class="wp-block-heading"><span id="toc6">・変数から検索する</span></h3>



<p>先ほどはセルから文字を読み取り、検索を行いましたが、<strong><span class="marker-under"><span class="bold-green">変数</span>から読み取ることも可能</span></strong>です。</p>



<p>では、例を紹介したいと思います。</p>



<p>見本のソースコードをご覧ください。</p>



<pre class="wp-block-verse">Sub 対象の文字が右側から何文字目か調査()
Dim N As Long, <span class="bold-green">Word</span>
<span class="bold-green">Word</span> = "あいうえおあいうえお"
N = InStrRev(<span class="bold-green">Word</span>, <span class="bold-blue">"う"</span>)
MsgBox "対象の文字は右側から検索すると" &amp; N &amp; "文字目にあります。"
End Sub</pre>



<p>内容として、変数「<span class="bold-green">Word</span>」に「<span class="bold-green">あいうえおあいうえお</span>」と言う文字列を格納しています。<br>こちらを<strong><span class="marker-under">InStrRev関数を使用することで右側から文字を検索</span></strong>しています。</p>



<p>今回は、見本で「<span class="bold-blue">う</span>」を検索しましょう。</p>



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



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-39.png" alt="" class="wp-image-4067" width="277" height="133" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-39.png 348w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-39-300x144.png 300w" sizes="(max-width: 277px) 100vw, 277px" /></figure>



<p>「<span class="bold-green">あいうえおあいうえお</span>」を右から「<span class="bold-blue">う</span>」を検索すると<br><strong><span class="bold-red">８文字目</span></strong>にあるので、狙い通り機能していることがわかります。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-40.png" alt="" class="wp-image-4068" width="453" height="127" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-40.png 606w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-40-300x84.png 300w" sizes="(max-width: 453px) 100vw, 453px" /></figure>



<p>さらに、比較用として<span class="bold-red">InStr関数</span>でも表示してみたいと思います。</p>



<pre class="wp-block-verse">Sub 対象の文字が<span class="bold-red">左側</span>から何文字目か調査()
Dim N As Long, Word
Word = "あいうえおあいうえお"
N = <span class="bold-red">InStr</span>(Word, "う")
MsgBox "対象の文字は<span class="bold-red">左側</span>から検索すると" &amp; N &amp; "文字目にあります。"
End Sub</pre>



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



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-41.png" alt="" class="wp-image-4069" width="344" height="168" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-41.png 411w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-41-300x147.png 300w" sizes="(max-width: 344px) 100vw, 344px" /></figure>



<p>文字列「<span class="bold-green">あいうえおあいうえお</span>」に含まれる「<span class="bold-blue">う</span>」は左から見ると<br>「8」文字目に含まれていますが、右から見ると<span class="bold-red">「3」文字目</span>に含まれていることから、「<span class="bold-red">3</span>」を出力しています。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="622" height="188" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-42.png" alt="" class="wp-image-4070" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-42.png 622w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-42-300x91.png 300w" sizes="(max-width: 622px) 100vw, 622px" /></figure>



<h2 class="wp-block-heading"><span id="toc7">&#x2b1b;︎応用編</span></h2>



<h3 class="wp-block-heading"><span id="toc8">・右端から何文字目に対象の文字があるか検索する</span></h3>



<p>では応用編です、先ほどは右側から検索し、左側から何文字目に対象の文字があるか検索していましたが<br>Len関数を使用することにより、<strong><span class="marker-under">右側から何文字目にあるか求める</span></strong>ことができます。</p>



<p>ではメカニズムについて紹介したいと思います。<br>下記のソースコードをご覧ください。</p>



<pre class="wp-block-verse">Sub 対象の文字が右側から何文字目か調査()
Dim N As Long, Wordcount
<span class="bold-blue">Wordcount</span> =<span class="bold-red"> </span>Len(Range("B3")) '文字の数を算出
<span class="bold-red">N </span>=<span class="bold-blue"> Wordcount</span> - <span class="bold-green">InStrRev(Range("B3"), "F")</span> + 1 '右から何文字目か計算
MsgBox "対象の文字は右側から検索すると" &amp; <span class="bold-red">N</span> &amp; "文字目にあります。"
End Sub</pre>



<p>まず<strong><span class="marker-under-blue">Len関数でセル番地B3の文字数を算出</span></strong>します。<br>その後に<strong><span class="marker-under">InStrRev関数を使用することで、右側から対象の文字を検索</span></strong>しています。</p>



<p>そこからLen関数で求めた<strong><span class="marker-under-red">文字数</span></strong>からInStrRev関数で<br>求めた<strong><span class="marker-under-red">文字の位置を引くことによって右端から何文字目にあるか求める</span></strong>ことができます。<br>ポイントとして結果に「+1」することで正確な計算結果となります。</p>



<p>では、見本を見ていきます。<br>セル番地B3には、「BCDEFCD」と言う文字列が含まれています。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="369" height="136" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-43.png" alt="" class="wp-image-4071" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-43.png 369w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-43-300x111.png 300w" sizes="(max-width: 369px) 100vw, 369px" /></figure>



<p>こちらを「<span class="bold-green">F</span>」で検索して、右端から何文字目にあるか求めたいと思います。</p>



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



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-44.png" alt="" class="wp-image-4072" width="330" height="160" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-44.png 369w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-44-300x146.png 300w" sizes="(max-width: 330px) 100vw, 330px" /></figure>



<p><strong><span class="marker-under">「F」は、右端から「3」文字目</span></strong>にあたるので<br>うまく機能していますね。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-46.png" alt="" class="wp-image-4074" width="493" height="153" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-46.png 754w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-46-300x94.png 300w" sizes="(max-width: 493px) 100vw, 493px" /></figure>



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



<h3 class="wp-block-heading"><span id="toc10">・文字が大文字・小文字で異なる</span></h3>



<p>検索の対象または対象となる文字が<br><strong><span class="marker-under">大文字と小文字で異なる場合はうまく検索できません</span></strong>。</p>



<p>先ほどの見本で小文字の「<span class="bold-blue">ｄ</span>」を検索してみましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="350" height="122" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-47.png" alt="" class="wp-image-4075" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-47.png 350w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-47-300x105.png 300w" sizes="(max-width: 350px) 100vw, 350px" /></figure>



<pre class="wp-block-verse">Sub 対象の文字が右側から数えて何文字目か調査()
Dim N As Long
N = InStrRev(<span class="bold-red">Range("B3")</span>, "<span class="bold-blue">d</span>")
MsgBox "対象の文字は右側から検索すると" &amp; N &amp; "文字目にあります。"
End Sub</pre>



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



<figure class="wp-block-image size-full"><img decoding="async" width="840" height="230" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-48.png" alt="" class="wp-image-4076" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-48.png 840w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-48-300x82.png 300w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-48-768x210.png 768w" sizes="(max-width: 840px) 100vw, 840px" /></figure>



<p><strong><span class="marker-under">検索文字が小文字のために「D」を検出できていません</span></strong>。</p>



<p>では、再度構文を見てみましょう。<br><span class="fz-20px"><strong>InStrRev(<span class="bold-red">検索対象</span>,<span class="bold-blue">検索文字・数値</span>,<span class="bold-green">[検索開始位置]</span>,<span class="bold-green">[検索の種類]</span>)</strong></span></p>



<p>冒頭で<span class="bold-green">検索の種類</span>は「バイナリモード」と「テキストモード」があると説明しました。</p>



<figure class="wp-block-table"><table><thead><tr><th>モード</th><th>入力文字</th><th>機能</th></tr></thead><tbody><tr><td>バイナリ</td><td><span class="bold-green">vbBinaryCompare</span></td><td>全角・半角の区別、大文字・小文字の区別をする</td></tr><tr><td>テキスト</td><td><span class="bold-green">vbTextCompare</span></td><td>全角・半角の区別、大文字・小文字の区別をしない</td></tr></tbody></table></figure>



<p>省略していた場合は「バイナリモード」となり、大文字・小文字を区別します。</p>



<p>つまり、大文字と小文字を区別しないテキストモードに変更すればいいのです。</p>



<p>なので検索の方法に「<span class="bold-green">vbTextCompare</span>」を追加すれば大文字と小文字を区別しなくなります。</p>



<pre class="wp-block-verse">N = InStrRev(Range("B3"), "d", , <strong><span class="bold-green">vbTextCompare</span></strong>)</pre>



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



<figure class="wp-block-image size-full"><img decoding="async" width="800" height="231" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-49.png" alt="" class="wp-image-4077" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-49.png 800w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-49-300x87.png 300w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-49-768x222.png 768w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p><strong><span class="marker-under">小文字の「ｄ」で検索したにもかかわらず大文字の「Ｄ」をカウント</span></strong>してくれました。</p>



<h3 class="wp-block-heading"><span id="toc11">・文字が全角・半角で異なる</span></h3>



<p>こちらも先程のエラーと同様です。<br>検索方法を<strong><span class="marker-under-blue">テキストモードに変える</span></strong>ことにより、全角半角<br>どちらでも検索できるようになります。</p>



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



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



<p><a href="https://support.microsoft.com/ja-jp/office/instrrev-%E9%96%A2%E6%95%B0-73193c1f-8db7-4558-ae91-fae75fe5fd56">InStrRev 関数 &#8211; Microsoft サポート</a></p>



<p></p>



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



<p>いかがだったでしょうか？<br>InStrRev関数を活用することで、右から文字を検索することができます。<br>さらにLen関数と合わせることによって、右端から何文字目に対象の文字があるか検索することも可能です。</p>



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



<p>それでは次回の記事でお会いしましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%8f%b3%e7%ab%af%e5%81%b4%e3%83%bb%e5%be%8c%e3%82%8d%e3%81%8b%e3%82%89%e5%af%be%e8%b1%a1%e3%81%ae%e6%96%87%e5%ad%97%e3%81%8c%e4%bd%95%e6%96%87/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4061</post-id>	</item>
		<item>
		<title>【マクロVBA】対象の文字が何個・何文字あるかInStr関数で求める！変数・セルに対応</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%af%be%e8%b1%a1%e3%81%ae%e6%96%87%e5%ad%97%e3%81%8c%e4%bd%95%e5%80%8b%e3%83%bb%e4%bd%95%e6%96%87%e5%ad%97%e3%81%82%e3%82%8b%e3%81%8binstr%e9%96%a2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e3%2580%2591%25e5%25af%25be%25e8%25b1%25a1%25e3%2581%25ae%25e6%2596%2587%25e5%25ad%2597%25e3%2581%258c%25e4%25bd%2595%25e5%2580%258b%25e3%2583%25bb%25e4%25bd%2595%25e6%2596%2587%25e5%25ad%2597%25e3%2581%2582%25e3%2582%258b%25e3%2581%258binstr%25e9%2596%25a2</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%af%be%e8%b1%a1%e3%81%ae%e6%96%87%e5%ad%97%e3%81%8c%e4%bd%95%e5%80%8b%e3%83%bb%e4%bd%95%e6%96%87%e5%ad%97%e3%81%82%e3%82%8b%e3%81%8binstr%e9%96%a2/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Wed, 22 Mar 2023 13:34:45 +0000</pubDate>
				<category><![CDATA[検索・置換]]></category>
		<category><![CDATA[文字操作]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[COUNT]]></category>
		<category><![CDATA[文字]]></category>
		<category><![CDATA[検索]]></category>
		<category><![CDATA[InStr関数]]></category>
		<category><![CDATA[文字数]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=4045</guid>

					<description><![CDATA[今回は対象の文字が何文字含まれているか確認する方法について紹介したいと思います。使用する関数はInStr関数となります。 ただし、今回は応用編なので、基礎編については下記の記事をご覧ください。 【マクロVBA】対象のセル [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>今回は<strong><span class="marker-under">対象の文字が何文字含まれているか確認する方法</span></strong>について紹介したいと思います。<br />使用する関数は<strong><span class="marker-under">InStr関数</span></strong>となります。</p>



<p>ただし、今回は応用編なので、基礎編については下記の記事をご覧ください。</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%af%be%e8%b1%a1%e3%81%ae%e3%82%bb%e3%83%ab%e3%83%bb%e5%a4%89%e6%95%b0%e3%81%ab%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e6%96%87%e5%ad%97%e3%83%bb/?preview_id=4025&amp;preview_nonce=34ecd26c32&amp;preview=true&amp;_thumbnail_id=4041">【マクロVBA】対象のセル・変数に指定した文字・数値が含まれているかInStrで確認する ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>対象の文字が何文字目に含まれているか確認できる<br />InStr関数ですが、応用することで<strong><span class="marker-under">何個・何文字含まれているか<br />求めることができます。</span></strong></p>



<p>是非参考にしてみてください。<br />それでは見ていきましょう。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-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">&#x2b1b;︎こんなことができるようになる！</a></li><li><a href="#toc2" tabindex="0">&#x2b1b;︎忙しい人向けのコピペ用ソースコード</a></li><li><a href="#toc3" tabindex="0">■構文の説明</a></li><li><a href="#toc4" tabindex="0">&#x2b1b;︎対象の文字の数を求める</a><ol><li><a href="#toc5" tabindex="0">・例①</a></li><li><a href="#toc6" tabindex="0">・例②</a></li></ol></li><li><a href="#toc7" tabindex="0">&#x2b1b;︎よくあるエラーと対処法</a><ol><li><a href="#toc8" tabindex="0">・文字が大文字・小文字で異なる</a></li><li><a href="#toc9" tabindex="0">・文字が全角・半角で異なる</a></li></ol></li><li><a href="#toc10" tabindex="0">■練習問題</a></li><li><a href="#toc11" tabindex="0">&#x2b1b;︎公式の説明</a></li><li><a href="#toc12" tabindex="0">&#x2b1b;︎まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">&#x2b1b;︎こんなことができるようになる！</span></h2>



<p>対象の文字が何文字あるか個数を確認することができる。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="510" height="167" class="wp-image-4047" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-26.png" alt="" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-26.png 510w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-26-300x98.png 300w" sizes="(max-width: 510px) 100vw, 510px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="508" height="107" class="wp-image-4048" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-27.png" alt="" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-27.png 508w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-27-300x63.png 300w" sizes="(max-width: 508px) 100vw, 508px" /></figure>



<h2 class="wp-block-heading"><span id="toc2">&#x2b1b;︎忙しい人向けのコピペ用ソースコード</span></h2>



<pre class="wp-block-verse">Sub 対象の文字が何個含まれているか調査()
Dim Counter, N
　Counter = 0
　N = 1
Do
　N = InStr(N + Counter, <span class="bold-red">検索したいセル・変数</span>, "<span class="bold-blue">確認したい文字</span>")
　　If N = 0 Then
　　　Exit Do
　　Else
　　　Counter = Counter + 1
　　End If
Loop

MsgBox "対象の文字は" &amp; Counter &amp; "個あります。"
End Sub</pre>



<h2 class="wp-block-heading"><span id="toc3">■構文の説明</span></h2>



<p>まず、使用する関数についてですが<strong><span class="marker-under">「InStr関数」</span></strong>になります。<br />関数仕様としては下記の通りです。</p>



<p><span class="fz-18px"><span class="fz-20px"><strong>InStr(<span class="bold-green">[検索開始位置]</span>,<span class="bold-red">検索対象</span>,<span class="bold-blue">検索文字・数値</span>,<span class="bold-green">[検索の種類]</span>)</strong></span></span></p>



<p>「<span class="bold-green">[ ]</span>」は省略可能となっています。</p>



<p><span class="bold-green">[検索の種類]</span>ではバイナリモードかテキストモードを<br />選択することができます。</p>



<p>バイナリモードの場合は<span class="bold-green">vbBinaryCompare</span><br />テキストモードの場合は<span class="bold-green">vbTextCompare</span>を入力します。</p>



<p>ただし、省略した場合はバイナリモードになるので<br /><strong><span class="marker-under-red">バイナリモードの場合は未入力</span></strong>でかまいません。</p>



<p>各モードの検索方法は下記の通りです。</p>



<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>モード</th>
<th>入力文字</th>
<th>機能</th>
</tr>
</thead>
<tbody>
<tr>
<td>バイナリ</td>
<td>vbBinaryCompare</td>
<td>全角・半角の区別、大文字・小文字の区別をする</td>
</tr>
<tr>
<td>テキスト</td>
<td>vbTextCompare</td>
<td>全角・半角の区別、大文字・小文字の区別をしない</td>
</tr>
</tbody>
</table>
</figure>



<h2 class="wp-block-heading"><span id="toc4">&#x2b1b;︎対象の文字の数を求める</span></h2>



<h3 class="wp-block-heading"><span id="toc5">・例①</span></h3>



<p>では、実際にInStr関数を使用して<strong><span class="marker-under">対象の文字の個数</span></strong>を求めたいと思います。<br />下記の見本をご覧ください。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="285" height="108" class="wp-image-4046" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-25.png" alt="" /></figure>



<p>今回はセル番地「<span class="bold-red">B3</span>」の文字列に「<span class="bold-blue">A</span>」が何個含まれているか求めたいと思います。<br />では見本のソースコードをご覧ください。</p>



<pre class="wp-block-verse">Sub 対象の文字が何個含まれているか調査()
 Dim Counter, N
 <span class="bold-green">Counter </span>= 0
 N = 1
Do
　N = InStr(N + <span class="bold-green">Counter,</span> <span class="bold-red">Range("B3")</span>, "<span class="bold-blue">A</span>")
　　If N = 0 Then
　　　Exit Do
　　Else
　　　<span class="bold-green">Counter</span> = <span class="bold-green">Counter </span>+ 1
　　End If
Loop

MsgBox "対象の文字は" &amp; <span class="bold-green">Counter </span>&amp; "個あります。"
End Sub</pre>



<p>では、仕組みを紹介したいと思います。</p>



<p>まず、対象を<span class="bold-red">セル番地B3</span>にしています。<br />そこから今回は「<span class="bold-blue">A</span>」が何文字含まれているか確認したいと思います。</p>



<p>検索の開始位置を変数「N」としており<br /><strong><span class="marker-under">初めは1文字目から検索</span></strong>を行います。</p>



<p>&nbsp;</p>



<p>１週目の結果として「A」は１文字目にあるので<br />変数「N」に「1」が格納されます。</p>



<p>そして、文字のカウントの変数「<span class="bold-green">Counter</span>」を+1します。</p>



<p>そして、この処理を<strong><span class="marker-under-blue">ループ処理</span></strong>することにより<br />文字を繰り返し検索するメカニズムになっています。</p>



<p>続いて2週目では、<br />開始位置を「N+<span class="bold-green">Counter</span>」していることにより、<strong><span class="marker-under">先程の検索に引っかかった「１文字目のA」は除外</span></strong>するようになります。</p>



<p>その後は検<strong><span class="marker-under-red">索に文字が引っかかるたびに「<span class="bold-green">Counter</span>」を+1</span></strong>することで</p>



<p>対象の文字が何文字あるかカウントします。</p>



<p>&nbsp;</p>



<p>そして、<strong><span class="marker-under-blue">検索に引っかからなくなった場合,<br />InStr関数の結果は「0」</span></strong>になるわけですから、「If N = 0 Then Exit Do」で<strong><span class="marker-under-blue">ループを抜け出し</span></strong>ます。</p>



<p>以上が説明になります。</p>



<p>では、実際に走らせてみたいと思います。</p>



<p>実行した結果はこちらです。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="510" height="167" class="wp-image-4047" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-26.png" alt="" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-26.png 510w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-26-300x98.png 300w" sizes="(max-width: 510px) 100vw, 510px" /></figure>



<p>「ABCADEAF」には「<span class="bold-blue">A</span>」が<strong><span class="marker-under">3文字</span></strong>含まれているので<br />「対象の文字は<strong><span class="marker-under">３個</span></strong>あります」というメッセージボックスが結果として表示されました。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="508" height="107" class="wp-image-4048" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-27.png" alt="" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-27.png 508w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-27-300x63.png 300w" sizes="(max-width: 508px) 100vw, 508px" /></figure>



<h3 class="wp-block-heading"><span id="toc6">・例②</span></h3>



<p>さらにB3を「BCDEFCD」にして「<span class="bold-blue">CD</span>」を検索しましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="301" height="104" class="wp-image-4049" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-28.png" alt="" /></figure>



<pre class="wp-block-verse">Sub 対象の文字が何個含まれているか調査()
 Dim Counter, N
 <span class="bold-green">Counter </span>= 0
 N = 1
Do
　N = InStr(N + <span class="bold-green">Counter,</span> <span class="bold-red">Range("B3")</span>, "<span class="bold-blue">CD</span>")
　　If N = 0 Then
　　　Exit Do
　　Else
　　　<span class="bold-green">Counter</span> = <span class="bold-green">Counter </span>+ 1
　　End If
Loop

MsgBox "対象の文字は" &amp; <span class="bold-green">Counter </span>&amp; "個あります。"
End Sub</pre>



<p>結果はこのようになりました。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" class="wp-image-4050" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-29.png" alt="" width="410" height="163" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-29.png 510w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-29-300x119.png 300w" sizes="(max-width: 410px) 100vw, 410px" /></figure>



<p>「BCDEFCD」には「<span class="bold-blue">CD</span>」という文字が<strong><span class="marker-under">２つある</span></strong>ので</p>



<p><strong><span class="marker-under">「2」を出力</span></strong>しています。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="508" height="107" class="wp-image-4051" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-30.png" alt="" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-30.png 508w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-30-300x63.png 300w" sizes="(max-width: 508px) 100vw, 508px" /></figure>



<p>文字数が増えてもうまく機能していますね。</p>



<h2 class="wp-block-heading"><span id="toc7">&#x2b1b;︎よくあるエラーと対処法</span></h2>



<h3 class="wp-block-heading"><span id="toc8">・文字が大文字・小文字で異なる</span></h3>



<p>検索の対象または対象となる文字が<br /><strong><span class="marker-under">大文字と小文字で異なる場合はうまく検索できません</span></strong>。</p>



<p>先ほどの見本で小文字の「<span class="bold-blue">ｄ</span>」を検索してみましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="350" height="126" class="wp-image-4052" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-31.png" alt="" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-31.png 350w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-31-300x108.png 300w" sizes="(max-width: 350px) 100vw, 350px" /></figure>



<pre class="wp-block-verse">Sub 対象の文字が何個含まれているか調査()
 Dim Counter, N
 <span class="bold-green">Counter </span>= 0
 N = 1
Do
　N = InStr(N + <span class="bold-green">Counter,</span> <span class="bold-red">Range("B3")</span>, "<span class="bold-blue">d</span>")
　　If N = 0 Then
　　　Exit Do
　　Else
　　　<span class="bold-green">Counter</span> = <span class="bold-green">Counter </span>+ 1
　　End If
Loop

MsgBox "対象の文字は" &amp; <span class="bold-green">Counter </span>&amp; "個あります。"
End Sub</pre>



<p>結果はこのようになります。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" class="wp-image-4053" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-32.png" alt="" width="520" height="193" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-32.png 566w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-32-300x111.png 300w" sizes="(max-width: 520px) 100vw, 520px" /></figure>



<p><strong><span class="marker-under">検索文字が小文字のために「D」を検出できていません</span></strong>。</p>



<p>では、再度構文を見てみましょう。<br /><strong><strong>InStr(<strong>[検索開始位置]</strong>,<strong>検索対象</strong>,<strong>検索文字・数値</strong>,<strong><span class="bold-green">[検索の種類]</span></strong>)</strong></strong></p>



<p>冒頭で検索の種類は「バイナリモード」と「テキストモード」があると説明しました。</p>



<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>モード</th>
<th>入力文字</th>
<th>機能</th>
</tr>
</thead>
<tbody>
<tr>
<td>バイナリ</td>
<td><span class="bold-green">vbBinaryCompare</span></td>
<td>全角・半角の区別、大文字・小文字の区別をする</td>
</tr>
<tr>
<td>テキスト</td>
<td><span class="bold-green">vbTextCompare</span></td>
<td>全角・半角の区別、大文字・小文字の区別をしない</td>
</tr>
</tbody>
</table>
</figure>



<p><br />省略していた場合は「バイナリモード」となり、大文字・小文字を区別します。</p>



<p>つまり、大文字と小文字を区別しないテキストモードに変更すればいいのです。</p>



<p>なので検索の方法に「<span class="bold-green">vbTextCompare</span>」を追加すれば大文字と小文字を区別しなくなります。</p>



<pre class="wp-block-verse">N = InStr(N + Counter, Range("B3"), "d", <strong><span class="bold-green">vbTextCompare</span></strong>)</pre>



<p>実行した結果はこちらです。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" class="wp-image-4056" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-33.png" alt="" width="530" height="206" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-33.png 587w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-33-300x117.png 300w" sizes="(max-width: 530px) 100vw, 530px" /></figure>



<p><strong><span class="marker-under">小文字の「ｄ」で検索したにもかかわらず大文字の「Ｄ」をカウント</span></strong>してくれました。</p>



<p>&nbsp;</p>



<h3 class="wp-block-heading"><span id="toc9">・文字が全角・半角で異なる</span></h3>



<p>こちらも先程のエラーと同様です。<br />検索方法を<strong><span class="marker-under-blue">テキストモードに変える</span></strong>ことにより、全角半角<br />どちらでも検索できるようになります。</p>
<h2><span id="toc10">■練習問題</span></h2>
<p>練習問題も別の記事でまとめているので是非参考にしてみてください！</p>
<div class="alert-box common-icon-box"><a href="https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%b7%b4%e7%bf%92%e5%95%8f%e9%a1%8c17%e3%80%91%e6%8c%87%e5%ae%9a%e3%83%bb%e5%af%be%e8%b1%a1%e3%81%ae%e6%96%87%e5%ad%97%e3%83%bb%e6%95%b0%e5%80%a4%e3%82%92/">【マクロVBA練習問題17】指定・対象の文字・数値を含んでいるか、確認しカウントする方法 ► 独学エクセル塾 (dokugakuexcel.com)</a></div>
<p>&nbsp;</p>



<h2 class="wp-block-heading"><span id="toc11">&#x2b1b;︎公式の説明</span></h2>



<p>わかりやすいように説明したため公式と使用する語句が異なりますが<br />マイクロソフト公式の説明については下記のリンクを参照してください☟</p>



<p><a href="https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/instr-function">InStr関数（Visual Basic for Applications） | Microsoft Learn</a></p>



<h2 class="wp-block-heading"><span id="toc12">&#x2b1b;︎まとめ</span></h2>



<p>いかがだったでしょうか。<br />InStr関数を応用することで対象の文字が何文字あるか検出することができます。</p>



<p>是非参考にしてみてください。</p>



<p>それでは次回の記事でお会いしましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%af%be%e8%b1%a1%e3%81%ae%e6%96%87%e5%ad%97%e3%81%8c%e4%bd%95%e5%80%8b%e3%83%bb%e4%bd%95%e6%96%87%e5%ad%97%e3%81%82%e3%82%8b%e3%81%8binstr%e9%96%a2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4045</post-id>	</item>
		<item>
		<title>【マクロVBA】対象のセル・変数に指定した文字・数値が含まれているかInStrで確認する</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%af%be%e8%b1%a1%e3%81%ae%e3%82%bb%e3%83%ab%e3%83%bb%e5%a4%89%e6%95%b0%e3%81%ab%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e6%96%87%e5%ad%97%e3%83%bb/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e3%2580%2591%25e5%25af%25be%25e8%25b1%25a1%25e3%2581%25ae%25e3%2582%25bb%25e3%2583%25ab%25e3%2583%25bb%25e5%25a4%2589%25e6%2595%25b0%25e3%2581%25ab%25e6%258c%2587%25e5%25ae%259a%25e3%2581%2597%25e3%2581%259f%25e6%2596%2587%25e5%25ad%2597%25e3%2583%25bb</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%af%be%e8%b1%a1%e3%81%ae%e3%82%bb%e3%83%ab%e3%83%bb%e5%a4%89%e6%95%b0%e3%81%ab%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e6%96%87%e5%ad%97%e3%83%bb/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Tue, 21 Mar 2023 15:01:07 +0000</pubDate>
				<category><![CDATA[検索・置換]]></category>
		<category><![CDATA[文字操作]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[文字の位置]]></category>
		<category><![CDATA[何文字目]]></category>
		<category><![CDATA[文字]]></category>
		<category><![CDATA[検索]]></category>
		<category><![CDATA[InStr関数]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=4025</guid>

					<description><![CDATA[マクロVBAには、FindやLikeなど様々な検索方法がありますが、今回は、対象のセル・変数に指定した文字が含まれているか確認する方法について紹介したいと思います。 さらに、応用すれば何文字目に含まれているかも確認できる [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>マクロVBAには、FindやLikeなど様々な検索方法がありますが、<br>今回は、<strong><span class="marker-under">対象のセル・変数に指定した文字が含まれているか確認する<br>方法</span></strong>について紹介したいと思います。</p>



<p>さらに、応用すれば<strong><span class="marker-under">何文字目に含まれているかも確認</span></strong>できるようになるので<br>とても便利な方法です。</p>



<p>ぜひ参考にしてみてください。<br>それでは見ていきましょう。</p>



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



<p>・指定した文字が、何文字目に含まれているか確認できるようになる<br>・対象のセル・変数の文字・数値を読み取り指定した文字が含まれているか確認できるようになる。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-14.png" alt="" class="wp-image-4027" width="508" height="186" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-14.png 554w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-14-300x110.png 300w" sizes="(max-width: 508px) 100vw, 508px" /></figure>



<h3 class="wp-block-heading"><span id="toc2">&#x2b1b;︎忙しい人向けのコピペ用ソースコード</span></h3>



<pre class="wp-block-verse">Sub InStr見本コード()
Dim TargetName As String
Dim SearchWord As String

<span class="bold-red">TargetName</span> = <span class="marker-under"><span class="bold-red">Range("B3")</span> </span>'対象セルor変数の指定
<span class="bold-blue">SearchWord</span>=<span class="bold-blue"><span class="marker-under">○<strong>○</strong></span></span>'検索したい文字を入力
'文字列中に「SearchWord」が含まれているかどうかを判定
If InStr(1, <span class="bold-red">TargetName</span>, <span class="bold-blue">SearchWord</span>, vbTextCompare) &gt; 0 Then
'<span class="bold-green">対象文字が含まれていた時の処理</span>
Else
'<span class="bold-green">対象文字が含まれていない時の処理</span>
End If
End Sub</pre>



<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"><ol><li><a href="#toc1" tabindex="0">&#x2b1b;︎こんなことができるようになる</a></li><li><a href="#toc2" tabindex="0">&#x2b1b;︎忙しい人向けのコピペ用ソースコード</a></li></ol></li><li><a href="#toc3" tabindex="0">■構文の説明</a></li><li><a href="#toc4" tabindex="0">&#x2b1b;︎指定した文字が含まれているか確認する</a><ol><li><a href="#toc5" tabindex="0">・対象の文字が何文字目にあるか割り出す</a></li><li><a href="#toc6" tabindex="0">・対象の文字が含まれているか確認する</a></li><li><a href="#toc7" tabindex="0">・変数から検索する</a></li></ol></li><li><a href="#toc8" tabindex="0">&#x2b1b;︎よくあるエラーと対処法</a><ol><li><a href="#toc9" tabindex="0">・文字が大文字・小文字で異なる</a></li><li><a href="#toc10" tabindex="0">・文字が全角・半角で異なる</a></li></ol></li><li><a href="#toc11" tabindex="0">&#x2b1b;︎公式の説明</a></li><li><a href="#toc12" tabindex="0">&#x2b1b;︎まとめ</a></li></ol>
    </div>
  </div>

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



<p>まず、使用する関数についてですが<strong><span class="marker-under">「InStr関数」</span></strong>になります。<br>関数仕様としては下記の通りです。</p>



<p><span class="fz-18px"><span class="fz-20px"><strong>InStr(<span class="bold-green">[検索開始位置]</span>,<span class="bold-red">検索対象</span>,<span class="bold-blue">検索文字・数値</span>,<span class="bold-green">[検索の種類]</span>)</strong></span></span></p>



<p>「<span class="bold-green">[ ]</span>」は省略可能となっています。</p>



<p><span class="bold-green">[検索の種類]</span>ではバイナリモードかテキストモードを<br>選択することができます。</p>



<p>バイナリモードの場合は<span class="bold-green">vbBinaryCompare</span><br>テキストモードの場合は<span class="bold-green">vbTextCompare</span>を入力します。</p>



<p>ただし、省略した場合はバイナリモードになるので<br><strong><span class="marker-under-red">バイナリモードの場合は未入力</span></strong>でかまいません。</p>



<p>各モードの検索方法は下記の通りです。</p>



<figure class="wp-block-table"><table><thead><tr><th>モード</th><th>入力文字</th><th>機能</th></tr></thead><tbody><tr><td>バイナリ</td><td>vbBinaryCompare</td><td>全角・半角の区別、大文字・小文字の区別をする</td></tr><tr><td>テキスト</td><td>vbTextCompare</td><td>全角・半角の区別、大文字・小文字の区別をしない</td></tr></tbody></table></figure>



<p></p>



<h2 class="wp-block-heading"><span id="toc4">&#x2b1b;︎指定した文字が含まれているか確認する</span></h2>



<h3 class="wp-block-heading"><span id="toc5">・対象の文字が何文字目にあるか割り出す</span></h3>



<p>では、実際にInStr関数を使用してみたいと思います。</p>



<p>まずはセル番地<strong><span class="marker-under">「<span class="bold-red">B3</span>」の文字列から「<span class="bold-blue">D</span>」の文字が含まれているか確認</span></strong>したいと思います。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="395" height="137" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-13.png" alt="" class="wp-image-4026" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-13.png 395w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-13-300x104.png 300w" sizes="(max-width: 395px) 100vw, 395px" /></figure>



<p>見本のソースコードは下記の通りです。</p>



<pre class="wp-block-verse">Sub 何文字目にあるか調査()
Dim answer As Long
'文字列中に「D」が何文字目に含まれているかどうかを判定
<strong><span class="marker-under-red">answer</span></strong> = InStr(1, <span class="bold-red">Range("B3")</span>, <span class="bold-blue">"D"</span>)
MsgBox "Dは" &amp; <strong><span class="marker-under-red">answer</span></strong> &amp; "文字目にあります。"
End Sub</pre>



<p>では構文と比較しましょう。</p>



<p><span class="fz-18px"><span class="fz-20px"><strong>InStr(<span class="bold-green">[検索開始位置]</span>,<span class="bold-red">検索対象</span>,<span class="bold-blue">検索文字・数値</span>,<span class="bold-green">[検索の種類]</span>)</strong></span></span></p>



<p>今回は検索開始位置を入力していますが、省略しても構いません。<br>例では「1」と入力しているので１文字目から検索します。</p>



<p><span class="bold-red">検索対象</span>はセル番地「<span class="bold-red">B3</span>」なので「 <span class="bold-red">Range(&#8220;B3&#8221;)</span>」としています。<br>「Cells(3,2)」でも構いません。</p>



<p><span class="bold-blue">検索文字・数値</span>は「<span class="bold-blue">D</span>」なので、ダブルクォーテーション「&#8221;」で囲って入力します。<br>ここで<strong><span class="marker-under">「&#8221;」で囲わないと変数扱いになるので注意が必要</span></strong>です。</p>



<p>結果としてInStr関数に当てはめるとこのようになります。<br><strong>answer</strong> =InStr(1, <span class="bold-red">Range(&#8220;B3&#8221;)</span>, &#8220;<span class="bold-blue">D</span>&#8220;)</p>



<p>今回は結果を「<strong>answer</strong>」という変数に格納してメッセージボックスにて<br>何文字目に「D」があるか表示したいと思います。</p>



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



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-14.png" alt="" class="wp-image-4027" width="508" height="186" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-14.png 554w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-14-300x110.png 300w" sizes="(max-width: 508px) 100vw, 508px" /></figure>



<p>「Dは4文字目にあります。」と表示されました。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-15.png" alt="" class="wp-image-4028" width="397" height="89" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-15.png 477w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-15-300x67.png 300w" sizes="(max-width: 397px) 100vw, 397px" /></figure>



<p>Aから数えて４番目に位置しているのでうまく機能していますね。</p>



<h3 class="wp-block-heading"><span id="toc6">・対象の文字が含まれているか確認する</span></h3>



<p>InStr関数ですが、検索した結果、<strong><span class="marker-under">対象の文字がなければ<br>変数の値は「0」になります。</span></strong></p>



<p>この機能を応用することで<br>対象の文字が含まれているかわかるようになります。</p>



<p>では、対象の文字が含まれているか、判別するソースコードを紹介します。</p>



<pre class="wp-block-verse">Sub 対象の文字が含まれているか調査()<br>'文字列中に「D」が何文字目に含まれているかどうかを判定<br>If InStr(1, Range("B3"), "D") &gt; 0 Then<br>MsgBox "対象の文字は含まれています"<br>Else<br>MsgBox "対象の文字は含まれていません"<br>End If<br>End Sub</pre>



<p>では説明です。<br>先程のInStr関数にIF関数を合わせることで<br>対象の文字が含まれているか判別できるようになります。</p>



<p>メカニズムとして<br><span class="marker-under-blue"><strong>文字があった場合、何文字目か数値を算出するので結果は「0」以上</strong></span>になります。<br>そこでIF関数で結果が<strong><span class="marker-under-blue">「0」を超えていた場合は「対象の文字は含まれています」</span></strong>というメッセージを表示させます。<br>対して<strong><span class="marker-under-red">検索結果が無い場合は「0」が算出されるため「対象の文字は含まれていません」と言うメッセージを表示させます</span></strong>。</p>



<p>それでは、こちらのソースコードを走らせてみましょう。</p>



<p>セル番地B3には「ABCDE」入力しています。<br>「Ｄ」で検索した結果はこちらです。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="562" height="232" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-17.png" alt="" class="wp-image-4030" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-17.png 562w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-17-300x124.png 300w" sizes="(max-width: 562px) 100vw, 562px" /></figure>



<p>「ABCDE」の中に「D」は含まれているので「対象の文字は含まれています」という結果になりました。</p>



<p>今度はB3に「FGHIJ」と入力しました。<br>実行した結果はこちらです。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="567" height="200" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-18.png" alt="" class="wp-image-4031" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-18.png 567w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-18-300x106.png 300w" sizes="(max-width: 567px) 100vw, 567px" /></figure>



<p>「FGHIJ」に「D」はないですから、「対処も文字は含まれていません」という結果になりました。</p>



<p>狙い通り動作していますね。<br>この方法で、対処のセル・変数に対象の文字が含まれているか確認することができます。</p>



<h3 class="wp-block-heading"><span id="toc7">・変数から検索する</span></h3>



<p>先ほどはセルから文字を読み取り、<br>検索を行いましたが、<strong><span class="marker-under">変数から読み取ることも可能</span></strong>です。</p>



<p>では、例を紹介したいと思います。</p>



<p>見本のソースコードをご覧ください。</p>



<pre class="wp-block-verse">Sub 対象の文字が含まれているか調査()
Dim <span class="bold-red">Word </span>As String
<span class="bold-red">Word</span> = "あいうえお"
If InStr(1, <span class="bold-red">Word</span>, "<span class="bold-blue">う</span>") &gt; 0 Then
MsgBox "対象の文字は含まれています"
Else
MsgBox "対象の文字は含まれていません"
End If
End Sub</pre>



<p>内容として、変数「<span class="bold-red">Word</span>」に「<strong><span class="marker-under-red">あいうえお</span></strong>」と言う文字列を格納しています。<br>こちらをInStr関数を使用することで<br>対象の文字が含まれているか確認します。</p>



<p>今回は、見本で「<strong><span class="bold-blue">う</span></strong>」を検索しましょう。</p>



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



<figure class="wp-block-image size-full"><img decoding="async" width="242" height="185" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-19.png" alt="" class="wp-image-4032"/></figure>



<p>「<span class="bold-red">あいうえお</span>」の中に「<span class="bold-blue">う</span>」は含まれているので「対象の文字は含まれています」という結果になりました。</p>



<p>　</p>



<p>今度は「<span class="bold-blue">か</span>」を検索してみたいと思います。</p>



<pre class="wp-block-verse">If InStr(1, <span class="bold-red">Word</span>, "<span class="bold-blue">か</span>") &gt; 0 Then</pre>



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



<figure class="wp-block-image size-full"><img decoding="async" width="262" height="207" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-20.png" alt="" class="wp-image-4033"/></figure>



<p>変数でも文字を検索することが出来ていますね。</p>



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



<h3 class="wp-block-heading"><span id="toc9">・文字が大文字・小文字で異なる</span></h3>



<p>検索の対象または検索する文字が<br>大文字と小文字で異なっている場合はうまく検索できません。</p>



<p>先ほどの見本で小文字の「<span class="bold-blue">ｄ</span>」を検索してみましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="350" height="125" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-21.png" alt="" class="wp-image-4034" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-21.png 350w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-21-300x107.png 300w" sizes="(max-width: 350px) 100vw, 350px" /></figure>



<pre class="wp-block-verse">Sub 対象の文字が何個含まれているか調査()
Dim Counter, N
Counter = 0
N = 1
Do
N = InStr(N + Counter, Range("B3"), "<span class="bold-blue">d</span>")
If N = 0 Then
Exit Do
Else
Counter = Counter + 1
End If
Loop
MsgBox "対象の文字は" &amp; Counter &amp; "個あります。"
End Sub</pre>



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



<figure class="wp-block-image size-full"><img decoding="async" width="566" height="207" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-22.png" alt="" class="wp-image-4035" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-22.png 566w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-22-300x110.png 300w" sizes="(max-width: 566px) 100vw, 566px" /></figure>



<p><strong><span class="marker-under">検索文字が小文字のために「D」を検出できていません</span></strong>。</p>



<p>では、再度構文を見てみましょう。<br><strong><strong>InStr(<strong>[検索開始位置]</strong>,<strong>検索対象</strong>,<strong>検索文字・数値</strong>,<strong><span class="bold-green">[検索の種類]</span></strong>)</strong></strong></p>



<p>冒頭で検索の種類は「バイナリモード」と「テキストモード」があると説明しました。</p>



<figure class="wp-block-table"><table><thead><tr><th>モード</th><th>入力文字</th><th>機能</th></tr></thead><tbody><tr><td>バイナリ</td><td><span class="bold-green">vbBinaryCompare</span></td><td>全角・半角の区別、大文字・小文字の区別をする</td></tr><tr><td>テキスト</td><td><span class="bold-green">vbTextCompare</span></td><td>全角・半角の区別、大文字・小文字の区別をしない</td></tr></tbody></table></figure>



<p><br>省略していた場合は「バイナリモード」となり、大文字・小文字を区別します。</p>



<p>つまり、大文字と小文字を区別しないテキストモードに変更すればいいのです。</p>



<p>なので検索の方法に「<span class="bold-green">vbTextCompare</span>」を追加すれば大文字と小文字を区別しなくなります。</p>



<pre class="wp-block-verse">N = InStr(N + Counter, Range("B3"), "d", <strong><span class="bold-green">vbTextCompare</span></strong>)</pre>



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



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



<p><strong><span class="marker-under">小文字で検索しましたが、大文字の「D」が検索出来ていますね。</span></strong></p>



<h3 class="wp-block-heading"><span id="toc10">・文字が全角・半角で異なる</span></h3>



<p>こちらも先程のエラーと同様です。<br>検索方法を<strong><span class="marker-under-blue">テキストモードに変える</span></strong>ことにより、全角半角<br>どちらでも検索できるようになります。</p>



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



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



<p><a href="https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/instr-function">InStr関数（Visual Basic for Applications） | Microsoft Learn</a></p>



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



<p>いかがだったでしょうか？<br>InStr関数を使えば対象の文字・数値が含まれているか確認することができます,<br>さらに、何文字目に含まれているかも確認することは可能なので、機能を応用することが可能です。</p>



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



<p>応用編としてInStr関数を使用して、対象の文字が何文字あるか<br>算出する方法も、別の記事でまとめていますので、ご参照下さい。</p>



<p>記事についてはこちらから☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%af%be%e8%b1%a1%e3%81%ae%e6%96%87%e5%ad%97%e3%81%8c%e4%bd%95%e5%80%8b%e3%83%bb%e4%bd%95%e6%96%87%e5%ad%97%e3%81%82%e3%82%8b%e3%81%8binstr%e9%96%a2/">【マクロVBA】対象の文字が何個・何文字あるかInStr関数で求める！変数・セルに対応 ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>それでは次回の記事でお会いしましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e5%af%be%e8%b1%a1%e3%81%ae%e3%82%bb%e3%83%ab%e3%83%bb%e5%a4%89%e6%95%b0%e3%81%ab%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e6%96%87%e5%ad%97%e3%83%bb/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4025</post-id>	</item>
		<item>
		<title>【マクロVBA】文字・数値の置き換え!部分・完全一致や大・小文字、全角半角などオプションも解説</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-23%e3%80%91%e6%96%87%e5%ad%97%e3%83%bb%e6%95%b0%e5%80%a4%e3%81%ae%e7%bd%ae%e6%8f%9b%e3%81%a8%e5%ae%8c%e5%85%a8%e4%b8%80%e8%87%b4%e3%81%aa/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e3%2583%259e%25e3%2582%25af%25e3%2583%25advba%25e7%259f%25a5%25e8%25ad%2598-23%25e3%2580%2591%25e6%2596%2587%25e5%25ad%2597%25e3%2583%25bb%25e6%2595%25b0%25e5%2580%25a4%25e3%2581%25ae%25e7%25bd%25ae%25e6%258f%259b%25e3%2581%25a8%25e5%25ae%258c%25e5%2585%25a8%25e4%25b8%2580%25e8%2587%25b4%25e3%2581%25aa</link>
					<comments>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-23%e3%80%91%e6%96%87%e5%ad%97%e3%83%bb%e6%95%b0%e5%80%a4%e3%81%ae%e7%bd%ae%e6%8f%9b%e3%81%a8%e5%ae%8c%e5%85%a8%e4%b8%80%e8%87%b4%e3%81%aa/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Thu, 14 Oct 2021 12:29:41 +0000</pubDate>
				<category><![CDATA[検索・置換]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[半角]]></category>
		<category><![CDATA[全角]]></category>
		<category><![CDATA[部分一致]]></category>
		<category><![CDATA[完全一致]]></category>
		<category><![CDATA[置換]]></category>
		<category><![CDATA[大文字]]></category>
		<category><![CDATA[小文字]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=1757</guid>

					<description><![CDATA[エクセルの機能で「置換」という指定した文字・数値を別の文字・数値に置き換える機能があります。 通常の置換機能はこちらから☟ 【置き換え】文字・数値の置換をシート・ブック内で様々な条件で行う ► 独学エクセル塾 (doku [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>エクセルの機能で「置換」という指定した<br>文字・数値を別の文字・数値に<strong><span class="marker-under-red">置き換える機能</span></strong>があります。</p>



<p>通常の置換機能はこちらから☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90%e7%bd%ae%e3%81%8d%e6%8f%9b%e3%81%88%e3%80%91%e6%96%87%e5%ad%97%e3%83%bb%e6%95%b0%e5%80%a4%e3%81%ae%e7%bd%ae%e6%8f%9b%e3%82%92%e3%82%b7%e3%83%bc%e3%83%88%e3%83%bb%e3%83%96%e3%83%83%e3%82%af/">【置き換え】文字・数値の置換をシート・ブック内で様々な条件で行う ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>その置換機能がマクロVBAでも実行することができます。</p>



<p>今回は選択範囲・複数範囲での置換や部分一致・完全一致置換、</p>



<p>大文字・小文字の区別など様々な調整方法をまとめてますので</p>



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



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




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-14" checked><label class="toc-title" for="toc-checkbox-14">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">■忙しい人向けのコピペ用プログラム</a></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">■ Replaceを使用して文字・数値を置き換える</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">・検索内容の一部の置換・完全一致のみ置換する</a></li><li><a href="#toc10" tabindex="0">・列方向/行方向に置き換え</a></li><li><a href="#toc11" tabindex="0">・大文字と小文字を区別</a></li><li><a href="#toc12" tabindex="0">・全角・半角を区別しない</a></li></ol></li><li><a href="#toc13" tabindex="0">■公式の説明</a></li><li><a href="#toc14" tabindex="0">■まとめ</a></li></ol>
    </div>
  </div>

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



<p><span class="bold-red">赤字</span>の部分をカスタムして使用してください。</p>



<pre class="wp-block-verse">Sub 文字数値の部分一致置換()
Range("<span class="bold-red">ここに置換対象の範囲</span>").Replace What:="<span class="bold-red">置換前の文字・数値</span>", Replacement:="<span class="bold-red">置換後の文字・数値</span>", LookAt:=<span class="marker-under-blue"><span class="marker-under-red">xlPart</span></span>
End Sub</pre>



<h2 class="wp-block-heading"><span id="toc2">■文字・数値を置き換える</span></h2>



<h3 class="wp-block-heading"><span id="toc3">・置換の基本プログラム</span></h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><span class="fz-20px">対象範囲.Replace What:=検索文字・数値, Replacement:=置換文字・数値</span></strong></p></blockquote>



<h3 class="wp-block-heading"><span id="toc4">・置換のオプション機能</span></h3>


<p></p>
<table style="height: 444px;" width="936">
<tbody>
<tr>
<td style="text-align: center;" width="126">名称</td>
<td style="text-align: center;" colspan="2" width="248">内容</td>
<td style="text-align: center;" width="64">省略可否</td>
</tr>
<tr>
<td style="text-align: center;">What</td>
<td style="text-align: center;">&#8211;</td>
<td style="text-align: center;">検索する文字・数値</td>
<td style="text-align: center;" rowspan="2">省略不可</td>
</tr>
<tr>
<td style="text-align: center;">Replacement</td>
<td style="text-align: center;">&#8211;</td>
<td style="text-align: center;">置換する文字・数値</td>
</tr>
<tr>
<td style="text-align: center;" rowspan="2">LookAt</td>
<td style="text-align: center;">xlPart</td>
<td style="text-align: center;">一部でも置換</td>
<td style="text-align: center;" rowspan="6">省略可</td>
</tr>
<tr>
<td style="text-align: center;">xlWhole</td>
<td style="text-align: center;">全て当てはまれば置換</td>
</tr>
<tr>
<td style="text-align: center;" rowspan="2">SearchOrder</td>
<td style="text-align: center;">xlByColumns</td>
<td style="text-align: center;">列方向に置き換え</td>
</tr>
<tr>
<td style="text-align: center;">xlByRows</td>
<td style="text-align: center;">行方向に置き換え</td>
</tr>
<tr>
<td style="text-align: center;">MatchCase</td>
<td style="text-align: center;">True</td>
<td style="text-align: center;">大文字と小文字を区別</td>
</tr>
<tr>
<td style="text-align: center;">MatchByte</td>
<td style="text-align: center;">False</td>
<td style="text-align: center;">全角半角を区別しない</td>
</tr>
</tbody>
</table>


<p></p>



<h2 class="wp-block-heading"><span id="toc5">■ Replaceを使用して文字・数値を置き換える</span></h2>



<h3 class="wp-block-heading"><span id="toc6">・通常の置換</span></h3>



<p>では見本を元に進めていきます。<br>下図をご覧ください。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="255" height="92" src="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-22.png" alt="" class="wp-image-1759"/></figure>



<p>B3に<strong><span class="marker-under-red">「1」</span></strong>という数値がありますね。<br>では<strong><span class="marker-under-red">「1」</span></strong>を<strong><span class="marker-under-blue">「2」</span></strong>に置き換えてみましょう。</p>



<p>使用方法はこのようになります。</p>



<p><strong><span class="fz-22px"><span class="fz-20px">対象範囲.Replace <span class="marker-under-red">What:=検索文字・数値</span>, <span class="marker-under-blue">Replacement:=置換文字・数値</span></span></span></strong></p>



<p>対象範囲は置き換えたい範囲なので「Ｂ3」ですね。<br><span class="marker-under-red">検索文字・数値は「1」</span>、<span class="marker-under-blue">置換文字・数値は「2」</span>ですね。</p>



<p>それでは当てはめてみましょう。</p>



<p><strong><span class="fz-20px">Range(&#8220;B3&#8221;).Replace <span class="marker-under-red">What:=1</span>, <span class="marker-under-blue">Replacement:=2</span></span></strong></p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 文字数値の置換()</p><p>Range(&#8220;B3&#8221;).Replace <span class="marker-under-red">What:=1</span>, <span class="marker-under-blue">Replacement:=2</span></p><p>End Sub</p></blockquote>



<p>それでは実行してみたいと思います。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="253" height="92" src="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-23.png" alt="" class="wp-image-1760"/></figure>



<p>「1」から「2」に変更することができました。</p>



<h3 class="wp-block-heading"><span id="toc7">・複数範囲の置換方法</span></h3>



<p>先ほど置換方法は<strong><span class="marker-under">複数の範囲でも置換が可能</span></strong>です。<br>下図の見本をご覧ください。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="201" height="117" src="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-24.png" alt="" class="wp-image-1761"/></figure>



<p>B2からE4の範囲に「A」または「B」の文字列が入力されてあります。<br>このなかの<span class="marker-under-red">「A」</span>を<span class="marker-under-blue">「C」</span>に一気に置き換えてみましょう。</p>



<p>プログラムの構造を振り返りましょう。<br>対象範囲.Replace What:=検索文字・数値, Replacement:=置換文字・数値</p>



<p>この<span class="marker-under"><strong>対象範囲を複数範囲</strong></span>にするだけで作業が可能になります。<br>プログラムは以下の通りです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 文字数値の置換()</p><p><span class="marker-under">Range(&#8220;B2：E4&#8221;)</span>.Replace<span class="marker-under-red"> What:=&#8221;A&#8221;</span>, <span class="marker-under-blue">Replacement:=&#8221;C&#8221;</span></p><p>End Sub</p></blockquote>



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



<figure class="wp-block-image size-full"><img decoding="async" width="199" height="118" src="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-25.png" alt="" class="wp-image-1762"/></figure>



<p>複数範囲でも「A」が「C」になりました。</p>



<h2 class="wp-block-heading"><span id="toc8">■オプションを使用して置換条件を設定する</span></h2>



<p>通常のエクセルの機能の置換のように<br>VBAの置換でも<strong><span class="marker-under">大文字・小文字の区別や、全角・半角の区別などの機能</span></strong>もあります。<br>不要であれば省略可能なプログラムですが、必要な場合に追加してください。</p>



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



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



<h3 class="wp-block-heading"><span id="toc9">・検索内容の一部の置換・完全一致のみ置換する</span></h3>



<p>まずは検索内容が一部でも当てはまれば置き換える方法と、<br>完全一致で置き換える方法について紹介します。</p>



<p>使用するのは下記の通りです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><span class="fz-20px">部分一致：LookAt:=<span class="marker-under-red">xlPart</span><br>完全一致：LookAt:=<span class="marker-under-blue">xlWhole</span></span></strong></p></blockquote>



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



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



<p>「AAA」という文字がD2とD3に入力してあります。<br>そして今回は<span class="marker-under">「A」から「B」</span>に置き換えていきます。</p>



<p>2行目は部分一致のLookAt:=<span class="marker-under-red">xlPart</span>で実行。<br>3行目は完全一致のLookAt:=<span class="marker-under-blue">xlWhole</span>を使用して実行していきます。</p>



<p>使用方法は簡単で、これまで説明した<br><strong>「対象範囲.Replace What:=検索文字・数値, Replacement:=置換文字・数値」</strong><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>Sub 文字数値の部分一致置換()</p><p>Range(&#8220;D2&#8243;).Replace What:=&#8221;A&#8221;, Replacement:=&#8221;B&#8221;, LookAt:=<span class="marker-under-red">xlPart</span><br>Range(&#8220;D3&#8243;).Replace What:=&#8221;A&#8221;, Replacement:=&#8221;B&#8221;, LookAt:=<span class="marker-under-blue">xlWhole</span></p><p>End Sub</p></blockquote>



<p>こちらを実行するとこのようになります。</p>



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



<p>部分一致で置き換えたものは、<strong>「A」である文字はすべて「B」になる</strong>ため<br>「BBB」に変化しました。<br>完全一致の方は<strong>「A」で完全一致しないので置き換えはされていません</strong>。</p>



<p>では、今度は<span class="marker-under">「AAA」を「BBB」に置き換え</span>てみましょう。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>プログラムはこのようになります。<br>Sub 文字数値の部分一致置換()</p><p>Range(&#8220;D2&#8243;).Replace What:=&#8221;AAA&#8221;, Replacement:=&#8221;BBB&#8221;, LookAt:=<span class="marker-under-red">xlPart</span><br>Range(&#8220;D3&#8243;).Replace What:=&#8221;AAA&#8221;, Replacement:=&#8221;BBB&#8221;, LookAt:=<span class="marker-under-blue">xlWhole</span></p><p>End Sub</p></blockquote>



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



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



<p>今度は「D3」の<span class="marker-under">「AAA」も完全一致するので「BBB」に変化</span>してくれました。</p>



<h3 class="wp-block-heading"><span id="toc10">・列方向/行方向に置き換え</span></h3>



<p>次に列方向に置き換えするのか、行方向に置き換えするのか制御する方法です。</p>



<p>使用するものは下記の通りです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>列方向に置き換え：SearchOrder:=<span class="marker-under-red">xlByColumns</span><br>行方向に置き換え：SearchOrder:=<span class="marker-under-blue">xlByRows</span></strong></p></blockquote>



<p>使用方法は簡単で、先ほど同様に<strong>通常の置換プログラムの後に追加</strong>すればいいだけです。</p>



<p>一例でプログラムを載せます。</p>



<p><strong><span class="fz-20px">Range(&#8220;D2：R4&#8243;).Replace What:=&#8221;A&#8221;, Replacement:=&#8221;B&#8221;</span></strong></p>



<p>このプログラムは「D2からR4」の範囲の「A」を「B」に置き換えるプログラムですが<br>置き換える方向を<strong><span class="marker-under-blue">行方向</span></strong>に置き換えたい場合はこのようになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong><span class="fz-14px"><span class="fz-16px">Range(&#8220;D2：R4&#8243;).Replace What:=&#8221;A&#8221;, Replacement:=&#8221;B&#8221;, SearchOrder:=<span class="marker-under-blue">xlByRows</span></span></span></strong></p></blockquote>



<p>これで行方向に置き換えが可能になりました。</p>



<h3 class="wp-block-heading"><span id="toc11">・大文字と小文字を区別</span></h3>



<p><strong><span class="marker-under">つぎは大文字と小文字を区別する方法</span></strong>です<br>大文字・小文字の区別をしたい場合は通常のプログラムに<br><strong><span class="marker-under-red">「 MatchCase:=True」</span></strong>を追加すれば区別が可能になります。</p>



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



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



<p>「D2」「D3」に「a」が入力されてあります。<br>今回は「A」から「B」に置き換えてみます。</p>



<p>それでは通常の置換と大文字・小文字を区別した置換を見てみましょう。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 文字の大文字と小文字の区別置換()</p><p>Range(&#8220;D2&#8243;).Replace What:=&#8221;A&#8221;, Replacement:=&#8221;B&#8221;<br>Range(&#8220;D3&#8243;).Replace What:=&#8221;A&#8221;, Replacement:=&#8221;B&#8221;,<span class="marker-under-red"> MatchCase:=True</span></p><p>End Sub</p></blockquote>



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



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



<p>通常は大文字・小文字の区別がない為、小文字の「a」でも「B」に置き換えていますが<br>区別した方は対象ではなくなるのでそのままになりました。</p>



<h3 class="wp-block-heading"><span id="toc12">・全角・半角を区別しない</span></h3>



<p>次は<strong><span class="marker-under">全角・半角の区別しない方法</span></strong>についてです。<br>通常のプログラムに<strong><span class="marker-under-red">「MatchByte:=False」</span></strong>を追加すれば全角・半角を区別しない置換が可能になります。</p>



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



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



<p>「D2」「D3」に「半角のｱ」が入力されてあります。<br>今回は「全角のア」から「イ」に置き換えてみます。</p>



<p>それでは通常の置換と全角・半角を区別しない置換を見てみましょう。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Sub 文字の全角半角を区別しない置換()</p><p>Range(&#8220;D2&#8243;).Replace What:=&#8221;ア&#8221;, Replacement:=&#8221;イ&#8221;<br>Range(&#8220;D3&#8243;).Replace What:=&#8221;ア&#8221;, Replacement:=&#8221;イ&#8221;,<span class="marker-under-red"> MatchByte:=False</span></p><p>End Sub</p></blockquote>



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



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



<p>通常は区別するのでそのままですが<br>MatchByte:=Falseを追加した方は「イ」に置き換えることができました。</p>



<p></p>



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



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



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



<p><a href="https://docs.microsoft.com/ja-jp/office/vba/api/excel.range.replace">Range.Replace メソッド (Excel) | Microsoft Docs</a></p>



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



<p>いかがだったでしょうか。<br>VBAでも置換機能が使えるのは便利な機能ですよね。</p>



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



<p></p>



<p>次回はSelect Caseの機能について紹介します。記事はこちらから☟</p>



<p><a href="https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-24%e3%80%91%e8%a4%87%e6%95%b0%e3%81%aeif%e3%82%92%e7%9f%ad%e7%b8%aeselect-case%e3%81%a7%e6%a7%98%e3%80%85%e3%81%aa%e6%9d%a1%e4%bb%b6%e3%83%bb/">【マクロVBA知識 24】複数のIfを短縮!Select Caseで様々な条件・ケースの分岐処理 ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>それでは次回の記事でお会いしましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e7%9f%a5%e8%ad%98-23%e3%80%91%e6%96%87%e5%ad%97%e3%83%bb%e6%95%b0%e5%80%a4%e3%81%ae%e7%bd%ae%e6%8f%9b%e3%81%a8%e5%ae%8c%e5%85%a8%e4%b8%80%e8%87%b4%e3%81%aa/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1757</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[エラー]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[検索]]></category>
		<category><![CDATA[find]]></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-16" checked><label class="toc-title" for="toc-checkbox-16">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">■検索方法について</a></li><li><a href="#toc2" tabindex="0">■文字・数値を検索する</a></li><li><a href="#toc3" tabindex="0">■検索して当てはまったデータの行数と列数を変数に格納する</a></li><li><a href="#toc4" tabindex="0">■検索した行数と列数を活用してみる</a></li><li><a href="#toc5" tabindex="0">■検索エラー時の対応</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>
	</channel>
</rss>
