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

<channel>
	<title>文字数  |  独学エクセル塾</title>
	<atom:link href="https://dokugakuexcel.com/tag/%e6%96%87%e5%ad%97%e6%95%b0/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練習問題12】指定した数値以下の最大値を表示！IFの複数条件処理を実践</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%8c12%e3%80%91%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%9f%e6%95%b0%e5%80%a4%e4%bb%a5%e4%b8%8b%e3%81%ae%e6%9c%80%e5%a4%a7%e5%80%a4/?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%258c12%25e3%2580%2591%25e6%258c%2587%25e5%25ae%259a%25e3%2581%2597%25e3%2581%259f%25e6%2595%25b0%25e5%2580%25a4%25e4%25bb%25a5%25e4%25b8%258b%25e3%2581%25ae%25e6%259c%2580%25e5%25a4%25a7%25e5%2580%25a4</link>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Mon, 03 Jul 2023 12:54:54 +0000</pubDate>
				<category><![CDATA[条件分岐]]></category>
		<category><![CDATA[マクロVBA練習問題]]></category>
		<category><![CDATA[計算]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[文字数]]></category>
		<category><![CDATA[練習問題]]></category>
		<category><![CDATA[文字列の長さ]]></category>
		<category><![CDATA[Len]]></category>
		<category><![CDATA[IsNumeric]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=4366</guid>

					<description><![CDATA[目次 練習問題と内容について・練習問題の狙い・練習問題12について練習問題の内容と動作説明問題内容動作説明ヒント・ヒントその1・ヒントその2・ヒントその3・ヒントその4解答コード・回答その①・回答その②必要な知識ループ構 [&#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">・練習問題12について</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><li><a href="#toc11" tabindex="0">・ヒントその4</a></li></ol></li><li><a href="#toc12" tabindex="0">解答コード</a><ol><li><a href="#toc13" tabindex="0">・回答その①</a></li><li><a href="#toc14" tabindex="0">・回答その②</a></li></ol></li><li><a href="#toc15" tabindex="0">必要な知識</a><ol><li><a href="#toc16" tabindex="0">ループ構造</a></li><li><a href="#toc17" tabindex="0">条件分岐</a></li><li><a href="#toc18" tabindex="0"> メッセージボックスの表示</a></li><li><a href="#toc19" tabindex="0">セルの値が数値か判断</a></li></ol></li><li><a href="#toc20" 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">・練習問題12について</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>セル番地A1からA10までの<span class="marker-under"><strong>数値の中で100以下の数値の最大値を持つセルの値を表示</strong></span>する。</p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-4367 " src="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-19.png" width="759" height="350" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-19.png 1037w, https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-19-300x138.png 300w, https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-19-1024x472.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-19-768x354.png 768w" sizes="(max-width: 759px) 100vw, 759px" /></p>
<h3 class="wp-block-heading"><span id="toc6">動作説明</span></h3>
<p>VBAを使用して、セル番地A1からA10までの数値を比較し、その中で100以下の数値の最大値を持つセルの値を表示します。</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>ループを使用して<span class="marker-under"><strong>セル番地A1からA10までの値を順番に取得</strong></span>します。<br /><br />例えば下記のような見本を紹介します。</p>
<div class="blank-box bb-blue"><strong>For Each cell In Range(&#8220;A1:A10&#8221;)</strong><br /> &#8216;ここに処理<br /><strong>Next cell</strong></div>
<div>これにより、A1からA10まで順に繰り返し処理を行います。</div>
<h3><span id="toc9">・ヒントその2</span></h3>
<p>各セルの値が100以下の場合に、<span class="marker-under"><strong>その値を保持する変数を使用して、最大値を更新</strong></span>します。</p>
<p>最大値の値を保持するためには変数を用いて「変数＝最大値」のように格納しておく必要があります。</p>
<h3><span id="toc10">・ヒントその3</span></h3>
<p><span class="marker-under"><strong>取得した値が最大値であるかどうかを判定する条件分岐</strong></span>を使用します。</p>
<p><span class="marker-under-red"><strong>条件分岐はIf Then</strong></span>を使用します。</p>
<p>例えば「数値1が90」、「数値2が80」の場合、「If 数値1＞数値2　then」で数値1が大きかった時の処理が行われます。</p>
<p>この構造を活用して、最大値を判断していきます。</p>
<p>さらに、100以下も条件として追加する必要があるため、２つの条件式が必要です。</p>
<p>その際のソースコードは下記の通りです。</p>
<div class="question-box common-icon-box"><span style="font-size: 20px;"><strong>If <span style="color: #ff0000;">条件式1</span>  And　<span style="color: #0000ff;">条件式2</span>　Then</strong></span></div>
<div>このように<span class="marker-under"><strong>「And」を用いることで２つの条件を設定</strong></span>することが可能です。</div>
<div>
<h3><span id="toc11">・ヒントその4</span></h3>
<p>今回は少し発展した内容を含めてみましょう。<br />仮に数値以外の文字などが入力されてあった場合エラーとなってしまいます。</p>
<p>そうなれば、優秀なソースコードは呼べません。<br />そこで処理前に数値であることを確認して処理してみましょう。</p>
<p>確認方法は<span class="marker-under-red"><strong>IsNumeric(<span style="color: #339966;">対象のセル・変数</span>)となります。</strong></span></p>
<p>&nbsp;</p>
</div>
<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="toc12">解答コード</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="toc13">・回答その①</span></h3>
<div class="blank-box bb-tab bb-check bb-blue">
<p>Sub Exercise12to1()<br /><br />　Dim <strong><span style="color: #ff0000;">maxVal</span> </strong>As Double<br />　Dim <strong><span style="color: #339966;">cell</span> </strong>As Range<br /><br /><strong><span style="color: #ff0000;">maxVal</span> </strong>= -99999 &#8216; 初期値を負の無限大に設定<br /><br />For Each <strong><span style="color: #339966;">cell</span> </strong> In Range(<span style="color: #ffcc00;"><strong>&#8220;A1:A10&#8221;</strong></span>)<br />　If IsNumeric(<strong><span style="color: #339966;">cell</span> </strong>.Value) And <strong><span style="color: #0000ff;">cell.Value &lt;= 100</span></strong> Then<br />　　If <strong><span style="color: #339966;">cell</span> </strong>.Value &gt; <strong><span style="color: #ff0000;">maxVal</span> </strong>Then<br />　　　maxVal = <strong><span style="color: #339966;">cell</span> </strong>.Value<br />　　End If<br />　End If<br />Next <strong><span style="color: #339966;">cell</span> </strong><br /><br />Range(&#8220;C2&#8221;).Value = <strong><span style="color: #ff0000;">maxVal<br /></span> </strong><br />End Sub</p>
</div>
<div> </div>
<p>上記のコードは、<span class="marker-under"><strong>セル番地A1からA10までの数値の中で100以下の数値の最大値を持つセルの値を表示</strong></span>するVBAのマクロです。</p>
<p>解答コードの説明:<br />1. <strong><span style="color: #ff0000;">maxVal</span> </strong>という変数を用意し、初期値を負の無限大に設定します。<br />2. `For Each`ループを使用して、セル番地<strong><span style="color: #ffcc00;">A1からA10</span></strong>までの範囲をループします。<br />3. 各セルの値が数値であり、100以下の場合に条件を満たすかどうかを判定します。<br />4. 条件を満たす場合、そのセルの値が現在の<strong><span style="color: #ff0000;">maxVal</span> </strong>よりも大きい場合は、<strong><span style="color: #ff0000;">maxVal</span> </strong>を更新します。<br />5. ループが終了した後、<strong><span style="color: #ff0000;">maxVal</span> </strong>に格納された最大値をメッセージボックスで表示します。</p>
<p>&nbsp;</p>
<p>ちなみに今回は<span class="marker-under-red"><strong>「 IsNumeric(<span style="color: #339966;">cell</span> .Value)」を使用することで対象のセルが数値か判断</strong></span>しています。<br />数値でなければスルーしてくれます。</p>
<p>それでは実行してみましょう。<br />結果はこのようになります。</p>
<p><img decoding="async" class="alignnone wp-image-4368 " src="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-20.png" width="330" height="276" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-20.png 484w, https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-20-300x250.png 300w" sizes="(max-width: 330px) 100vw, 330px" /></p>
<p>１０個の数値の中で100以下の最大の数は「64」なので上手く機能していることがわかります。</p>
<h3><span id="toc14">・回答その②</span></h3>
<div class="blank-box bb-tab bb-check bb-blue">
<p>Sub Exercise12to2()<br /><br />　Dim <strong><span style="color: #ff0000;">maxVal</span> </strong>As Double<br />　Dim <strong><span style="color: #339966;">cell</span> </strong>As Range<br /><br /><strong><span style="color: #ff0000;">maxVal</span> </strong>= 0 &#8216; 初期値を0に設定<br /><br />For Each <strong><span style="color: #339966;">cell</span> </strong>In Range(<span style="color: #ffcc00;"><strong>&#8220;A1:A10&#8221;</strong></span>)<br />　If IsNumeric(<strong><span style="color: #339966;">cell</span> </strong>.Value) Then<br />　　If <strong><span style="color: #0000ff;">cell.Value &lt;= 100</span></strong> And <strong><span style="color: #339966;">cell</span> </strong>.Value &gt; <strong><span style="color: #ff0000;">maxVal</span> </strong> Then<br /><strong><span style="color: #ff0000;">　　　maxVal</span> </strong>= <strong><span style="color: #339966;">cell</span> </strong>.Value<br />　　End If<br />　End If<br />Next <strong><span style="color: #339966;">cell</span> </strong><br /><br />If <strong><span style="color: #ff0000;">maxVal</span> </strong>= 0 Then<br />　　MsgBox &#8220;100以下の数値は存在しません&#8221;<br />　Else<br />　　Range(&#8220;C2&#8221;).Value = <strong><span style="color: #ff0000;">maxVal</span> </strong><br />End If<br /><br />End Sub</p>
</div>
<div>
<p>この回答例では、初期値を0に設定し、ループ内で条件判定を行っています。</p>
<p>最大値が0のままであれば、<span class="marker-under"><strong>100以下の数値は存在しないことをメッセージボックスで表示</strong></span>します。<br /><br /></p>
<p><img decoding="async" width="232" height="177" class="alignnone wp-image-4369 size-full" src="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-21.png" /></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="toc15">必要な知識</span></h2>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>この問題を解くためには、以下の基本的な知識が必要です。</p>
<h3><span id="toc16">ループ構造</span></h3>
<p>偶数の個数を数えるためには、<span class="marker-under"><strong>セル番地A1からA10までの値を1つずつ判定</strong></span>する必要があります。<br /><strong>ループ構造</strong>を使用して、指定した範囲のセルを順番に処理する方法を理解する必要があります。<br />今回は<strong>For Each文</strong>と<strong>For Next文</strong>を使用しました。</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>
<h3><span id="toc17">条件分岐</span></h3>
<p>セルの値が偶数かどうかを判定するためには、条件分岐の文法を理解する必要があります。<br />VBAではIf&#8230;Then&#8230;Else文やSelect Case文などが使用されます。</p>
<div class="information-box common-icon-box"><a href="https://dokugakuexcel.com/%e3%80%90vba%e7%9f%a5%e8%ad%98-9%e3%80%91if-then%e3%81%a7%e6%9d%a1%e4%bb%b6%e5%88%86%e5%b2%90%e3%83%bb%e5%88%a4%e5%88%a5%e3%82%92%e3%81%99%e3%82%8b%e2%97%8b%e2%97%8b%e3%81%aa%e3%82%89/">【マクロVBA】If …Thenで条件分岐・判別をする!Elseで異なる処理パターンも可能に ► 独学エクセル塾 (dokugakuexcel.com)</a></div>
<h3><span id="toc18"> メッセージボックスの表示</span></h3>
<p>メッセージボックスを表示するためには、MsgBox関数を使用します。<br />この関数を使うと、メッセージや結果をダイアログボックスとして表示することができます。</p>
<p>見本では「MsgBox &#8220;100以下の数値は存在しません&#8221;」と入力しましたが、下図のように表示されます。</p>
<p><img decoding="async" width="232" height="177" id="thepasted-4" class="alignnone wp-image-4369 size-full" src="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-21.png" /></p>
<h3><span id="toc19">セルの値が数値か判断</span></h3>
<p>今回は少し発展した課題にしたため、対象のセルの値が数値であるか確認しました。</p>
<p>確認方法は<span class="marker-under-red"><strong>IsNumeric(<span style="color: #339966;">cell</span> .Value)となります。</strong></span></p>
<p>こちらを条件分岐に入れることで、文字などが入っていた場合は対象のセルをスルーするようにしています。</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%91isnumeric%e9%96%a2%e6%95%b0%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e6%95%b0%e5%80%a4%e5%88%a4%e5%ae%9a%ef%bc%81%e5%a4%89%e6%95%b0%e3%83%bb%e3%82%bb/">【マクロVBA】IsNumeric関数を使って数値判定！変数・セルの値でも数字であるか判別可能 ► 独学エクセル塾 (dokugakuexcel.com)</a></div>
<h2 class="wp-block-heading"><span id="toc20">まとめ</span></h2>
<p>この練習問題では、VBAを使用してセル番地A1からA10までの数値の中で100以下の数値の最大値を持つセルの値を表示する方法を学びました。</p>
<p>具体的には、ループを使用して各セルの値を比較し、条件を満たす場合に最大値を更新するという手法を用いました。</p>
<p>VBAを使うことで、Excelのデータを効率的に処理したり、特定の条件に基づいて操作したりすることができます。</p>
<p>練習問題を通じて、VBAの基礎知識を身につけ、より高度な処理や操作に挑戦してみましょう。</p>
<p>次の練習問題では、さらに複雑な問題に取り組んでいきますので、ぜひ続けて挑戦してください。</p>
<p>&nbsp;</p>
<p>以上で練習問題12となります。お疲れ様でした！</p>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4366</post-id>	</item>
		<item>
		<title>【マクロVBA練習問題11】文字数・文字列の長さを計算・算出し、合計値を計算する</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%8c11%e3%80%91%e6%96%87%e5%ad%97%e6%95%b0%e3%83%bb%e6%96%87%e5%ad%97%e5%88%97%e3%81%ae%e9%95%b7%e3%81%95%e3%82%92%e8%a8%88/?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%258c11%25e3%2580%2591%25e6%2596%2587%25e5%25ad%2597%25e6%2595%25b0%25e3%2583%25bb%25e6%2596%2587%25e5%25ad%2597%25e5%2588%2597%25e3%2581%25ae%25e9%2595%25b7%25e3%2581%2595%25e3%2582%2592%25e8%25a8%2588</link>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Mon, 03 Jul 2023 02:35:25 +0000</pubDate>
				<category><![CDATA[計算・関数]]></category>
		<category><![CDATA[文字操作]]></category>
		<category><![CDATA[マクロVBA練習問題]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[文字数]]></category>
		<category><![CDATA[練習問題]]></category>
		<category><![CDATA[文字列の長さ]]></category>
		<category><![CDATA[Len]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=4359</guid>

					<description><![CDATA[目次 練習問題と内容について・練習問題の狙い・練習問題11について練習問題の内容と動作説明問題内容動作説明ヒント・ヒントその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">・練習問題11について</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">・練習問題11について</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>セル番地A1からA10までの<span class="marker-under"><strong>文字数・文字列の長さの合計値を計算</strong></span>し、セル番地C2に結果を表示する。</p>
<p><img decoding="async" class="alignnone wp-image-4360 " src="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-16.png" width="741" height="320" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-16.png 1344w, https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-16-300x130.png 300w, https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-16-1024x443.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-16-768x332.png 768w" sizes="(max-width: 741px) 100vw, 741px" /></p>
<h3 class="wp-block-heading"><span id="toc6">動作説明</span></h3>
<p>VBAを使用して、セル番地A1からA10までの文字列の長さを計算し、その合計値をセル番地C2に表示します。</p>
<p>具体的には、A1からA10までのセルの値を取得し、文字数・文字列の長さを計算していき、最終的な合計値をC2に表示する必要があります。</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>ループを使用して<span class="marker-under"><strong>セル番地A1からA10までの値を順番に取得</strong></span>します。<br /><br />例えば下記のような見本を紹介します。</p>
<div class="blank-box bb-blue"><strong>For Each cell In Range(&#8220;A1:A10&#8221;)</strong><br /> &#8216;ここに処理<br /><strong>Next cell</strong></div>
<div>これにより、A1からA10まで順に繰り返し処理を行います。</div>
<h3><span id="toc9">・ヒントその2</span></h3>
<p>セルに入力されてある文字数・文字列の長さを計算するためには「Len関数」を使用する必要があります。</p>
<p>Len関数の構文は下記の通りです。</p>
<div class="memo-box common-icon-box"><strong><span class="bold-red">出力先</span></strong><b>＝Len(<span class="bold-blue">対象となる文字列</span>)</b></div>
<div>こちらの構文を活用して、文字数・文字列の長さを計算してください。</div>
<h3><span id="toc10">・ヒントその3</span></h3>
<p>文字数・文字列の長さをカウントアップします。</p>
<p><span class="marker-under"><strong>カウントアップ方法は「変数＝変数+1」</strong></span>で指定した変数がカウントアップされます。</p>
<p><br />これらのヒントを参考にして、解答コードを作成してみてください。  </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 Exercise11to1()<br /><br />　Dim <strong><span style="color: #ff0000;">totalLength</span> </strong>As Integer<br />　Dim cell As Range</p>
<p>　<strong><span style="color: #ff0000;">totalLength</span> </strong>= 0<br />　For Each cell In Range(&#8220;<span style="color: #339966;"><strong>A1:A10</strong></span>&#8220;)<br />　　<strong><span style="color: #ff0000;">totalLength</span> </strong>= <strong><span style="color: #ff0000;">totalLength</span> </strong>+ Len(cell.Value)<br />　Next cell</p>
<p>　Range(&#8220;<strong><span style="color: #0000ff;">C2</span></strong>&#8220;).Value = totalLength<br /><br />End Sub</p>
</div>
<div>
<p>上記のコードは、セル番地<span style="color: #339966;"><strong>A1</strong></span>から<span style="color: #339966;"><strong>A10</strong></span>までの文字列の長さの合計値を計算し、セル番地<strong><span style="color: #0000ff;">C2</span></strong>に結果を表示するVBAのマクロです。</p>
<p>解答コードの流れは以下の通りです<br /><br />1. <strong><span style="color: #ff0000;">totalLength</span> </strong>という変数を宣言し、合計値を保持します。<br />2. ループを使用して、セル番地<strong><span style="color: #339966;">A1</span></strong>から<span style="color: #339966;"><strong>A10</strong></span>までのセルの値を取得します。<br />3. 取得したセルの値の文字列の長さを計算し、合計値に加算します。<br />4. 最終的な合計値をセル番地<strong><span style="color: #0000ff;">C2</span></strong>に表示します。</p>
</div>
<p>では実行してみましょう。<br />結果はこのようになります。</p>
<p><img decoding="async" class="alignnone wp-image-4361 " src="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-17.png" width="461" height="364" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-17.png 658w, https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-17-300x237.png 300w" sizes="(max-width: 461px) 100vw, 461px" /></p>
<p><span class="marker-under"><strong>文字数の合計は「33」</strong></span>となりました。<br /><img decoding="async" class="alignnone wp-image-4362 " src="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-18.png" width="265" height="362" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-18.png 400w, https://dokugakuexcel.com/wp-content/uploads/2023/07/Pasted-18-219x300.png 219w" sizes="(max-width: 265px) 100vw, 265px" /></p>
<p>文字数の合計は手動で数えても「33」なので問題なく機能していることが分かります。</p>
<h3><span id="toc13">・回答その②</span></h3>
<div class="blank-box bb-tab bb-check bb-blue">
<p>Sub Exercise11to2()<br /><br />Dim <strong><span style="color: #ff0000;">totalLength</span> </strong>As Integer<br />Dim <strong><span style="color: #3366ff;">TargetLength</span> </strong>As Integer</p>
<p>　<strong><span style="color: #ff0000;">totalLength</span> </strong>= 0<br />　For i = 1 To 10<br />　　<strong><span style="color: #3366ff;">TargetLength</span> </strong>= <strong><span style="color: #339966;">Len(Cells(i, 1))</span></strong><br />　　<strong><span style="color: #ff0000;">totalLength</span> </strong>= <strong><span style="color: #ff0000;">totalLength</span> </strong>+ <strong><span style="color: #3366ff;">TargetLength</span> </strong><br />　Next i</p>
<p>　Range(&#8220;C2&#8221;).Value = <strong><span style="color: #ff0000;">totalLength</span> </strong></p>
<p><br />End Sub</p>
</div>
<div>
<p>上記のコードでは、Forループを使用してセル番地A1からA10までの文字列の長さを計算しています。<br />変数「<strong><span style="color: #339966;">i</span></strong>」を1から10までの値で変化させ、<strong><span class="marker-under"><span style="color: #339966;">Len(Cells(i, 1))</span>を使用してセルの値の文字の数を取得</span></strong>しています。</p>
<p>計算した文字列の長さを<strong><span style="color: #ff0000;">totalLength</span></strong>に加算し、最終的な合計値をセル番地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>偶数の個数を数えるためには、<span class="marker-under"><strong>セル番地A1からA10までの値を1つずつ判定</strong></span>する必要があります。<br /><strong>ループ構造</strong>を使用して、指定した範囲のセルを順番に処理する方法を理解する必要があります。<br />今回は<strong>For Each文</strong>と<strong>For Next文</strong>を使用しました。</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>
<h3><span id="toc16">文字列の長さの計算</span></h3>
<p><span class="marker-under"><strong>文字列の長さを計算するために、Len関数を使用</strong></span>します。Len関数は、文字列の長さを返します。</p>
<p>構文をは下記の通りです。</p>
<p><strong><span class="bold-red">出力先</span></strong><b>＝Len(<span class="bold-blue">対象となる文字列</span>)</b></p>
<p>とてもシンプルな関数ですね。</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%83%bb%e5%a4%89%e6%95%b0%e3%81%ae%e6%96%87%e5%ad%97%e6%95%b0%e3%82%92%e6%b1%82%e3%82%81%e3%82%8b%e6%96%b9%e6%b3%95lenb%e9%96%a2/">【マクロVBA】セル・変数の文字数を求める方法!LenB関数でバイトデータでも対応可能！ ► 独学エクセル塾 (dokugakuexcel.com)</a></div>
<p>&nbsp;</p>
<h2 class="wp-block-heading"><span id="toc17">まとめ</span></h2>
<p>この練習問題では、VBAを使用してセル番地A1からA10までの文字列の長さの合計値を計算し、セル番地C2に結果を表示する方法を学びました。</p>
<p>具体的には、Forループを使用してセルの範囲を繰り返し処理し、各セルの値の文字列の長さを計算しました。<br />計算した長さを合計値に加算していき、最終的な結果をセル番地C2に表示しました。</p>
<p>この問題を解くためには、ループ構造の理解、セルの範囲指定、文字列の長さの計算、変数の宣言と使用といった基本的な知識が必要です。</p>
<p>&nbsp;</p>
<p>VBAを使ってExcelの操作を自動化することで、繰り返し行われる処理や複雑な計算を効率的に実行することができます。</p>
<p>練習問題を通じて、VBAのスキルを向上させ、Excelの操作やデータ処理の効率化を実現するための能力を身につけていきましょう。</p>
<p>&nbsp;</p>
<p>以上で練習問題11となります。お疲れ様でした！</p>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4359</post-id>	</item>
		<item>
		<title>【マクロVBA】セル・変数の文字数を求める方法!LenB関数でバイトデータでも対応可能！</title>
		<link>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%83%bb%e5%a4%89%e6%95%b0%e3%81%ae%e6%96%87%e5%ad%97%e6%95%b0%e3%82%92%e6%b1%82%e3%82%81%e3%82%8b%e6%96%b9%e6%b3%95lenb%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%25e3%2582%25bb%25e3%2583%25ab%25e3%2583%25bb%25e5%25a4%2589%25e6%2595%25b0%25e3%2581%25ae%25e6%2596%2587%25e5%25ad%2597%25e6%2595%25b0%25e3%2582%2592%25e6%25b1%2582%25e3%2582%2581%25e3%2582%258b%25e6%2596%25b9%25e6%25b3%2595lenb%25e9%2596%25a2</link>
					<comments>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%83%bb%e5%a4%89%e6%95%b0%e3%81%ae%e6%96%87%e5%ad%97%e6%95%b0%e3%82%92%e6%b1%82%e3%82%81%e3%82%8b%e6%96%b9%e6%b3%95lenb%e9%96%a2/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Fri, 24 Mar 2023 13:21:24 +0000</pubDate>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[バイトデータ]]></category>
		<category><![CDATA[バイナリ]]></category>
		<category><![CDATA[個数]]></category>
		<category><![CDATA[文字数]]></category>
		<category><![CDATA[Len関数]]></category>
		<category><![CDATA[LenB関数]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=4107</guid>

					<description><![CDATA[VBAでは、セルに文字を入力したり、変数に文字や数字を格納したりなど様々な機能が存在します。 今回はセルに入力されている文字や数字、変数に格納された文字や数値をもとに何個の文字が存在するかを求める方法について紹介したいと [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>VBAでは、セルに文字を入力したり、変数に文字や数字を格納したりなど<br />様々な機能が存在します。</p>



<p>今回はセルに入力されている文字や数字、変数に格納された文字や数値をもとに<br /><strong><span class="marker-under">何個の文字が存在するかを求める方法</span></strong>について紹介したいと思います。</p>



<p>さらに<strong><span class="marker-under">バイトデータとしての文字の出力</span></strong><br />についても対応できますので、ぜひ参考にしてみてください。</p>



<p>それでは見ていきましょう。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">&#x2b1b;︎こんなことができるようになる</a></li><li><a href="#toc2" tabindex="0">&#x2b1b;︎構文の説明</a></li><li><a href="#toc3" tabindex="0">&#x2b1b;︎忙しい人向けのコピペ用ソースコード</a></li><li><a href="#toc4" tabindex="0">&#x2b1b;︎文字数を出力する方法</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">■練習問題</a></li><li><a href="#toc9" tabindex="0">&#x2b1b;︎公式の説明</a></li><li><a href="#toc10" tabindex="0">&#x2b1b;︎まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">&#x2b1b;︎こんなことができるようになる</span></h2>



<p>・セル・変数に格納された文字数を出力できる<br />・バイトデータとしての文字数を出力することができる</p>



<h2 class="wp-block-heading"><span id="toc2">&#x2b1b;︎構文の説明</span></h2>



<p><span class="fz-22px"><strong><span class="bold-red">出力先</span></strong><b>＝Len(<span class="bold-blue">対象となる文字列</span>)</b></span></p>



<h2 class="wp-block-heading"><span id="toc3">&#x2b1b;︎忙しい人向けのコピペ用ソースコード</span></h2>



<pre class="wp-block-verse">Sub 文字数を出力()
<span class="bold-red">出力先を入力</span>= Len(<span class="bold-blue">文字数を求めたい対象</span>)
End Sub</pre>



<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>してみましょう。<br />見本として下図のようなExcelファイルを用意しました。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="583" height="136" class="wp-image-4108" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-66.png" alt="" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-66.png 583w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-66-300x70.png 300w" sizes="(max-width: 583px) 100vw, 583px" /></figure>



<p>セル番地「<strong><span class="bold-blue">B3</span></strong>」に「<strong><span class="bold-blue">あいうえお</span></strong>」と言う文字が入っています。<br />今回は、こちらの文字数を求めて<br />セル番地「<span class="bold-red">D3</span>」に出力したいと思います。</p>



<p>では構文を再度見ていきましょう。</p>



<p><strong><span class="fz-18px"><span class="fz-20px"><span class="bold-red">出力先</span></span></span></strong><b><span class="fz-18px"><span class="fz-20px">＝Len(<span class="bold-blue">対象となる文字列</span>)</span></span></b></p>



<p>今回の「対象となる文字列」は<span class="bold-blue">B3</span>になりますね。<br />なので「Len(<span class="bold-blue">Range(&#8220;B3&#8221;)</span>)」のようになります。<br />「Len(<span class="bold-blue">Cells(3, 2)</span>)」でも構いません。</p>



<p>では、ソースコードを見ていきましょう。</p>



<pre class="wp-block-verse">Sub 文字数を出力()
<span class="bold-red">Range("D3")</span> = Len(<span class="bold-blue">Range("B3")</span>)
End Sub</pre>



<p>構文も単純なので、簡単なソースコードとなっています。<br />それでは実行していきましょう。<br />結果はこのようになっています。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="605" height="140" class="wp-image-4109" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-67.png" alt="" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-67.png 605w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-67-300x69.png 300w" sizes="(max-width: 605px) 100vw, 605px" /></figure>



<p>セル番地「<span class="bold-blue">B3</span>」に含まれている文字は「<span class="bold-blue">あいうえお</span>」であることから<br />文字数が「<span class="bold-red">5</span>」ということがわかります。<br />なので、<span class="bold-red">D3</span>に出力された結果は合っているといえますね。</p>



<p>別の文字でも見てみましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="613" height="145" class="wp-image-4110" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-68.png" alt="" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-68.png 613w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-68-300x71.png 300w" sizes="(max-width: 613px) 100vw, 613px" /></figure>



<p>それでは実行してみましょう。<br />結果はこのようになります。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="615" height="145" class="wp-image-4111" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-69.png" alt="" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-69.png 615w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-69-300x71.png 300w" sizes="(max-width: 615px) 100vw, 615px" /></figure>



<p>「<span class="bold-blue">12345678</span>」は「<span class="bold-red">8</span>」文字なので<br />こちらもあっていますね。</p>



<h3 class="wp-block-heading"><span id="toc6">・変数に格納されている文字数を出力する</span></h3>



<p>先ほどはセルから文字を取得していましたが<br />今回は<strong><span class="marker-under">変数から文字を取得して文字数を求めたい</span></strong>と思います</p>



<p>今回は先にソースコードの方を紹介したいと思います。<br />見本のソースコードはこちらです。</p>



<pre class="wp-block-verse">Sub 変数から文字数を出力()
Dim Word As String
<span class="bold-blue">Word</span> = "独学エクセル塾"
<span class="bold-red">Range("B3")</span> = Len(<span class="bold-blue">Word</span>)
End Sub</pre>



<p>では説明に移りたいと思います。<br />変数「<span class="bold-blue">Word</span>」には「<span class="bold-blue">独学エクセル塾</span>」と言う文字が格納されています。</p>



<p>この変数「<span class="bold-blue">Word</span>」の文字数を出力するために構文に当てはめていきましょう。</p>



<p><strong><span class="fz-18px"><span class="fz-20px"><span class="bold-red">出力先</span></span></span></strong><b><span class="fz-18px"><span class="fz-20px">＝Len(<span class="bold-blue">対象となる文字列</span>)</span></span></b></p>



<p>&nbsp;</p>



<p>対象となるのは文字列を変数なので「<span class="bold-blue">Word</span>」が入ります。</p>



<p>それでは実行してみましょう。<br />結果はこのようになりました</p>



<figure class="wp-block-image size-full"><img decoding="async" width="358" height="142" class="wp-image-4112" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-70.png" alt="" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-70.png 358w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-70-300x119.png 300w" sizes="(max-width: 358px) 100vw, 358px" /></figure>



<p>変数「<span class="bold-blue">Word</span>」には「<span class="bold-blue">独学エクセル塾</span>」と言う文字が格納されていますよね。<br />つまり、文字数は「<span class="bold-red">7</span>」なので<br />出力結果は正しいことがわかります。</p>



<h3 class="wp-block-heading"><span id="toc7">・バイトデータの形式で文字数を出力する</span></h3>



<p>時として、文字数を<strong><span class="marker-under">バイトデータとした</span><span class="marker-under">文字数</span><span class="marker-under">で出力したい</span></strong>場面があったとします。<br />その時には<strong><span class="marker-under">LenB関数</span></strong>を使用します。</p>



<p>Len関数との違いとしては、<br /><span class="marker-under-blue"><strong>全角の文字を2文字、半角の文字を1文字としてカウント</strong></span>します。</p>



<p>では、構文を見てみましょう。</p>



<p><strong><span class="fz-18px"><span class="fz-20px"><span class="bold-red">出力先</span></span></span></strong><b><span class="fz-18px"><span class="fz-20px">＝LenB(<span class="bold-blue">対象となる文字列</span>)</span></span></b></p>



<p>&nbsp;</p>



<p>では、こちらも、下図の見本で説明したいと思います。<br />セル番地「<span class="bold-blue">B3とB4</span>」に入力されてある文字を「<span class="bold-red">D3とD4</span>」に<strong><span class="marker-under-blue">バイトデータで求めた文字数を出力</span></strong>したいと思います。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="587" height="149" class="wp-image-4113" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-71.png" alt="" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-71.png 587w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-71-300x76.png 300w" sizes="(max-width: 587px) 100vw, 587px" /></figure>



<p>しかしここで注意点です。<br /><strong><span class="marker-under-red">VBAの処理では読み取った文字はすべて全角同様の「2バイト」で<br />読み取ってしまいます</span></strong>。</p>



<p>ここで使用するのが「<strong><span class="marker-under-blue">StrConv</span></strong>」です。<br />こちらの関数は文字列を変換する機能があるのですが、今回は下記のように使用します。</p>



<pre class="wp-block-verse"><strong><span class="marker-under-blue">StrConv</span></strong>(<span class="bold-blue">対象の文字</span>, <span class="bold-green">vbFromUnicode</span>)</pre>



<p>&nbsp;</p>



<p>「<span class="bold-green">vbFromUnicode</span>」で読み取った<strong><span class="marker-under">データを全角（２バイト）・半角（1バイト）に変換</span></strong>します。</p>



<p>上記機能を使用して、セルに入力されてある文字数を求めてみましょう。<br />ソースコードこちらです。</p>



<pre class="wp-block-verse">Sub 文字数をバイトで出力()
<span class="bold-red">Range("D3")</span> = LenB(<strong><span class="marker-under-blue">StrConv</span></strong>(<span class="bold-blue">Range("B3")</span>, <span class="bold-green">vbFromUnicode</span>))
<span class="bold-red">Range("D4")</span> = LenB(<strong><span class="marker-under-blue">StrConv</span></strong>(<span class="bold-blue">Range("B4")</span>, <span class="bold-green">vbFromUnicode</span>))
End Sub</pre>



<p>それでは実行しましょう。<br />結果はこのようになりました。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="577" height="156" class="wp-image-4114" src="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-72.png" alt="" srcset="https://dokugakuexcel.com/wp-content/uploads/2023/03/image-72.png 577w, https://dokugakuexcel.com/wp-content/uploads/2023/03/image-72-300x81.png 300w" sizes="(max-width: 577px) 100vw, 577px" /></figure>



<p>全角は2文字、半角は1文字ですから<br />うまく機能していることがわかります。</p>
<h2><span id="toc8">■練習問題</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%8c11%e3%80%91%e6%96%87%e5%ad%97%e6%95%b0%e3%83%bb%e6%96%87%e5%ad%97%e5%88%97%e3%81%ae%e9%95%b7%e3%81%95%e3%82%92%e8%a8%88/">【マクロVBA練習問題11】文字数・文字列の長さを計算・算出し、合計値を計算する ► 独学エクセル塾 (dokugakuexcel.com)</a></div>



<h2 class="wp-block-heading"><span id="toc9">&#x2b1b;︎公式の説明</span></h2>



<p>わかりやすいように説明したため公式と使用する語句が異なりますが<br />マイクロソフト公式の説明については下記のリンクを参照してください。☟</p>



<p>&nbsp;</p>



<p><a href="https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/len-function">Len 関数 (Visual Basic for Applications) | Microsoft Learn</a></p>



<p><a href="https://support.microsoft.com/ja-jp/office/len-%E9%96%A2%E6%95%B0-lenb-%E9%96%A2%E6%95%B0-29236f94-cedc-429d-affd-b5e33d2c67cb">LEN 関数、LENB 関数 &#8211; Microsoft サポート</a></p>



<h2 class="wp-block-heading"><span id="toc10">&#x2b1b;︎まとめ</span></h2>



<p>いかがだったでしょうか？<br />Len関数を使用すれば指定した文字数を簡単に求めることが出来ます。</p>



<p>またLenB関数を使用すればバイト数で<br />求めることが出来ますが「StrConv」で文字を変換しなければならないことを覚えておいてください。</p>



<p>&nbsp;</p>



<p>さらにLen関数を応用した記事についてもまとめていますので是非参考にしてみてください。</p>



<p><a href="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/">【マクロVBA】右端側・後ろから対象の文字が何文字目に含まれているか確認する！InStrRev ► 独学エクセル塾 (dokugakuexcel.com)</a></p>



<p>&nbsp;</p>



<p>それでは次回の記事でお会いしましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%80%90%e3%83%9e%e3%82%af%e3%83%advba%e3%80%91%e3%82%bb%e3%83%ab%e3%83%bb%e5%a4%89%e6%95%b0%e3%81%ae%e6%96%87%e5%ad%97%e6%95%b0%e3%82%92%e6%b1%82%e3%82%81%e3%82%8b%e6%96%b9%e6%b3%95lenb%e9%96%a2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4107</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[InStrRev関数]]></category>
		<category><![CDATA[右端]]></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>
	</channel>
</rss>
