<?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%9C%80%E7%B5%82%E8%A1%8C/feed/" rel="self" type="application/rss+xml" />
	<link>https://dokugakuexcel.com</link>
	<description>初心者から中級者までシステム・関数・VBAを伝授します</description>
	<lastBuildDate>Sun, 09 Apr 2023 19:23:12 +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>エクセルで1番シンプルで右端・最下部・最終列・行のデータを抽出・求める方法</title>
		<link>https://dokugakuexcel.com/%e3%82%a8%e3%82%af%e3%82%bb%e3%83%ab%e3%81%a71%e7%95%aa%e3%82%b7%e3%83%b3%e3%83%97%e3%83%ab%e3%81%a7%e5%8f%b3%e7%ab%af%e3%83%bb%e6%9c%80%e4%b8%8b%e9%83%a8%e3%83%bb%e6%9c%80%e7%b5%82%e5%88%97%e3%83%bb/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2582%25a8%25e3%2582%25af%25e3%2582%25bb%25e3%2583%25ab%25e3%2581%25a71%25e7%2595%25aa%25e3%2582%25b7%25e3%2583%25b3%25e3%2583%2597%25e3%2583%25ab%25e3%2581%25a7%25e5%258f%25b3%25e7%25ab%25af%25e3%2583%25bb%25e6%259c%2580%25e4%25b8%258b%25e9%2583%25a8%25e3%2583%25bb%25e6%259c%2580%25e7%25b5%2582%25e5%2588%2597%25e3%2583%25bb</link>
					<comments>https://dokugakuexcel.com/%e3%82%a8%e3%82%af%e3%82%bb%e3%83%ab%e3%81%a71%e7%95%aa%e3%82%b7%e3%83%b3%e3%83%97%e3%83%ab%e3%81%a7%e5%8f%b3%e7%ab%af%e3%83%bb%e6%9c%80%e4%b8%8b%e9%83%a8%e3%83%bb%e6%9c%80%e7%b5%82%e5%88%97%e3%83%bb/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Mon, 11 Apr 2022 13:06:24 +0000</pubDate>
				<category><![CDATA[関数・操作応用]]></category>
		<category><![CDATA[最終行]]></category>
		<category><![CDATA[最終列]]></category>
		<category><![CDATA[データを抽出]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=2672</guid>

					<description><![CDATA[今回は対象範囲での1番右端・下にあるデータの抽出方法についてまとめています。データを右方向・下方向に入力している場合など最新データの抽出するのに役立ちます。 例えば累積して入力する仕様であれば「MAX関数」で対応できます [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>今回は<strong><span class="marker-under">対象範囲での1番右端・下にあるデータの抽出方法</span></strong>についてまとめています。<br>データを右方向・下方向に入力している場合など最新データの抽出するのに役立ちます。</p>



<p>例えば累積して入力する仕様であれば「MAX関数」で対応できますが<br>単体で数値を入力している場合は「MAX・MIN関数」を使用しても求めることができません。</p>



<p>そこで今回は<strong><span class="marker-under">関数を活用して右端・下のデータを抽出する方法</span></strong>についてまとめています。</p>



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




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-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">・よくみる検索値「10＾10」の意味と活用法について</a></li></ol></li><li><a href="#toc4" tabindex="0">■文字の最終列・行を求める</a></li><li><a href="#toc5" tabindex="0">■まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">■数値の最終列・行を求める</span></h2>



<h3 class="wp-block-heading"><span id="toc2">・関数を使用して最終列・行を求める</span></h3>



<p>今回紹介する方法は<strong><span class="marker-under">LOOKUP関数を活用する方法</span></strong>です。<br>様々な方法がありますが、この方法が1番シンプルで簡単です。</p>



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



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="178" src="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-24-1024x178.png" alt="" class="wp-image-2673" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-24-1024x178.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-24-300x52.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-24-768x134.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-24.png 1482w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>4月から3月までの売り上げを3行目に入力しているシートになります。<br>今回は8月まで入力されているので「B7」の「最新の売り上げ」に8月のデータが出力できればゴールです。</p>



<p>ではLOOKUP関数の仕組みを見てみましょう。</p>



<p><strong><span class="fz-20px">=LOOKUP(<span class="bold-red">検索値</span>,<span class="bold-blue">検索範囲</span>,[対応範囲])</span></strong></p>



<p><strong><span class="marker-under-red">通常のLOOKUP関数は検索範囲に検索値が当てはまる場合、対応範囲の結果を出力する関数</span></strong>になっています。<br>しかし<strong><span class="marker-under-red">LOOKUP関数にはあまり知られていない機能が2つあります</span></strong>。</p>



<p>マイクロソフト公式の記事を引用してみてみましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><em><strong>①LOOKUP では、検査値が見つからない場合、検査範囲内で検査値以下の最大値が、一致する値として使用されます。<br>②検査値 が検査範囲に含まれる最小値よりも小さい場合は、LOOKUP では、エラー値#N/A が返されます。</strong></em></p></blockquote>



<p>ここで注目してほしいのは①の「<strong><span class="marker-under-blue">検査値が見つからない場合、検査範囲内で検査値以下の最大値が、一致する値として使用</span></strong>」の部分です。</p>



<p>つまり②のエラーを回避するため、<span class="bold-red">想定される数値以上の数値を検索値</span>としてLOOKUP関数を使用すれば、一致する検索結果は見つからないため、①の条件を満たし、<strong><span class="marker-under-blue">右端・下のデータを出力する</span></strong>といった仕組みです。</p>



<p>では関数に当てはめてみましょう。<br>今回は「9999」を超える売り上げは存在しないとし、<span class="bold-red">検索値を「9999」</span>にします。</p>



<p><span class="bold-blue">範囲</span>は入力する「C3からN3」つまり「<span class="bold-blue">C3:N3</span>」です。</p>



<p>では打ち込んでみましょう。結果はこのようになります。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="450" src="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-25-1024x450.png" alt="" class="wp-image-2674" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-25-1024x450.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-25-300x132.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-25-768x338.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-25.png 1515w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><strong><span class="marker-under-red">C3からN3で一番右端の「2315」を出力</span></strong>することができました。<br>最終行のデータを求める際も同じ考え方です。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="469" src="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-26-1024x469.png" alt="" class="wp-image-2675" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-26-1024x469.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-26-300x137.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-26-768x352.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-26.png 1259w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>では見本で検索値を「2000」にした例を見てみましょう。</p>



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



<p>下から順に検索していきますが検索値は「2000」なので<br>8月の「2315」、7月の「7254」をスルーして「2000」以下に当てはまる<br>「1547」が出力されました。これはこれで活用法がありますね。</p>



<h3 class="wp-block-heading"><span id="toc3">・よくみる検索値「10＾10」の意味と活用法について</span></h3>



<p>ある記事で<span class="bold-red">は検索値を「10＾10」</span>にすればいいという内容を結構見かけました。<br>こちらの方法は<strong><span class="marker-under-red">「10乗を10回繰り返す」</span></strong>といった意味であり、<strong><span class="marker-under-red">「10000000000」</span></strong>を意味しています。</p>



<p>打ち込む文字も5文字で「10000000000」以下を網羅できるのでとても便利です。<br><strong><span class="marker-under-blue">しかし注意点として「10000000000」以上の数値には対応できません</span></strong>。</p>



<p>そこでLOOKUPを活用して右端・下の数値を抽出する一番美しい式はこのようになります。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="228" src="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-28-1024x228.png" alt="" class="wp-image-2677" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-28-1024x228.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-28-300x67.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-28-768x171.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-28.png 1478w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>再度、関数の仕組みを見ましょう。</p>



<p><strong><span class="fz-20px">=LOOKUP(<span class="bold-red">検索値</span>,<span class="marker-under-blue">検索範囲</span>)</span></strong><br>置き換えると<br><strong><span class="fz-20px">=LOOKUP(<span class="bold-red">MAX(C3:N3)+1</span>,<span class="bold-blue">C3:N3</span>)</span></strong></p>



<p>説明として<span class="bold-red">検索値</span>をMAX関数で最大値を求め、<strong><span class="marker-under-red">「+1」</span></strong>することにより<br>検査値が検索値を上回ってしまい、スルーするといった不具合がなくなります。</p>



<p>もちろん最大値の目途がついている場合はその数字を検査値にしてもいいですし<br>「99＾99」と検索値を膨大な数値にしても構いません。</p>



<h2 class="wp-block-heading"><span id="toc4">■文字の最終列・行を求める</span></h2>



<p>今度は<strong><span class="marker-under">文字の最終列・行</span></strong>を求めます。<br>先ほどは「<strong>=LOOKUP(<span class="bold-red">検索値</span>,<span class="bold-blue">検索範囲</span>)</strong>」に対して<br>「<strong>=LOOKUP(<span class="bold-red">考えられる最大値</span>,<span class="bold-blue">検索範囲</span>)</strong>」と合わせました。</p>



<p>しかし<strong><span class="marker-under-red">文字では数値の最大値を打ち込んでも検知しません</span></strong>。</p>



<p>では先ほどの見本に文字を打ってみましょう。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="180" src="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-29-1024x180.png" alt="" class="wp-image-2678" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-29-1024x180.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-29-300x53.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-29-768x135.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-29.png 1476w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>二万、四万などは<strong><span class="marker-under-red">文字のため最大値を検知できずエラーになっていしまいました</span></strong>。<br>では考えられる最大値には何を当てはめればよいのでしょうか。</p>



<p>実は文字にも大きさの順があります。<br>その文字は<strong><span class="marker-under-blue">「伸ばし棒のー」</span></strong>です。<strong>半角ではないので注意してください</strong>。</p>



<p>では関数に当てはめてみましょう。<br>「<strong><span class="fz-20px">=LOOKUP(<span class="bold-red">&#8220;ー&#8221;</span>,<span class="bold-blue">C3:N3</span>)」</span></strong></p>



<p>では打ち込んでみたいと思います。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="225" src="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-30-1024x225.png" alt="" class="wp-image-2679" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-30-1024x225.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-30-300x66.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-30-768x169.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-30.png 1483w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



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



<figure class="wp-block-image size-full"><img decoding="async" width="1024" height="176" src="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-31-1024x176-1.png" alt="" class="wp-image-2684" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-31-1024x176-1.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-31-1024x176-1-300x52.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-31-1024x176-1-768x132.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><strong><span class="marker-under-red">最終列のデータである「八万」を出力</span></strong>することができました。</p>



<p>しかしこの関数式では注意点があります。<br>「－」は文字の最大値でありますが、<strong><span class="marker-under-blue">先頭に「－」が続いた場合は最大値を上回ってしまうため検知できなくなります</span></strong>。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="176" src="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-32-1024x176.png" alt="" class="wp-image-2681" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-32-1024x176.png 1024w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-32-300x52.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-32-768x132.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-32.png 1458w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>その場合は「－」を2つ並べることでーが先頭についた最大値を上回ることができます。<br><strong><span class="fz-20px">「=LOOKUP(<span class="bold-red">&#8220;ーー&#8221;</span>,<span class="bold-blue">C3:N3</span>)」</span></strong></p>



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



<p>いたちごっこになりますが<br>「ー」が先頭に2つ並んだ場合は検知できなくなりますが「ー」を3つ並べれば大丈夫です。<br>あまりないとは思いますが、、、</p>



<p>補足として行方向の最終行の検出も可能です。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="988" height="569" src="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-34.png" alt="" class="wp-image-2683" srcset="https://dokugakuexcel.com/wp-content/uploads/2022/04/image-34.png 988w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-34-300x173.png 300w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-34-768x442.png 768w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-34-330x190.png 330w, https://dokugakuexcel.com/wp-content/uploads/2022/04/image-34-120x68.png 120w" sizes="(max-width: 988px) 100vw, 988px" /></figure>



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



<p>いかがだったでしょうか。<br>フォーマットがあった状態で最新データを出力したい場合にとても便利な方法です。<br>是非参考にしてみてください。</p>



<p>それでは次回の記事でお会いしましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dokugakuexcel.com/%e3%82%a8%e3%82%af%e3%82%bb%e3%83%ab%e3%81%a71%e7%95%aa%e3%82%b7%e3%83%b3%e3%83%97%e3%83%ab%e3%81%a7%e5%8f%b3%e7%ab%af%e3%83%bb%e6%9c%80%e4%b8%8b%e9%83%a8%e3%83%bb%e6%9c%80%e7%b5%82%e5%88%97%e3%83%bb/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2672</post-id>	</item>
		<item>
		<title>【最終行/列の取得】空白の無視にも対応！マクロVBAで最終列・行番号を取得・求める方法</title>
		<link>https://dokugakuexcel.com/%e3%80%90%e6%9c%80%e7%b5%82%e8%a1%8c-%e5%88%97%e3%81%ae%e5%8f%96%e5%be%97%e3%80%91%e7%a9%ba%e7%99%bd%e3%81%ae%e7%84%a1%e8%a6%96%e3%81%ab%e3%82%82%e5%af%be%e5%bf%9c%ef%bc%81%e3%83%9e%e3%82%af%e3%83%adv/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e3%2580%2590%25e6%259c%2580%25e7%25b5%2582%25e8%25a1%258c-%25e5%2588%2597%25e3%2581%25ae%25e5%258f%2596%25e5%25be%2597%25e3%2580%2591%25e7%25a9%25ba%25e7%2599%25bd%25e3%2581%25ae%25e7%2584%25a1%25e8%25a6%2596%25e3%2581%25ab%25e3%2582%2582%25e5%25af%25be%25e5%25bf%259c%25ef%25bc%2581%25e3%2583%259e%25e3%2582%25af%25e3%2583%25adv</link>
		
		<dc:creator><![CDATA[matsu]]></dc:creator>
		<pubDate>Fri, 15 Oct 2021 08:01:25 +0000</pubDate>
				<category><![CDATA[便利技]]></category>
		<category><![CDATA[マクロVBA応用・便利技]]></category>
		<category><![CDATA[空白]]></category>
		<category><![CDATA[End]]></category>
		<category><![CDATA[最終行]]></category>
		<category><![CDATA[最終列]]></category>
		<guid isPermaLink="false">https://dokugakuexcel.com/?p=1776</guid>

					<description><![CDATA[エクセルで最終行または最終列を知りたいことはないでしょうか。 今回はマクロVBAで最終列または行番号を取得する方法を紹介します。たとえばFor　Toで繰り返す回数を決まっていれば問題はありませんが、データ数が不明な場合は [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>エクセルで<strong><span class="marker-under">最終行または最終列</span></strong>を知りたいことはないでしょうか。</p>



<p>今回はマクロVBAで最終列または行番号を取得する方法を紹介します<strong>。</strong><br>たとえばFor　Toで繰り返す回数を決まっていれば問題はありませんが、<br>データ数が不明な場合は困ってしまいますよね。</p>



<p>データ数だけ繰り返したいときは最終行・列を知る必要があります。<br>さらに最終行・列にデータを追加していくシステムには必須の機能です。</p>



<p>今回はそんな最終行・列をマクロVBAで求める方法についてまとめました。</p>



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




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">■プログラムの流れ</a></li><li><a href="#toc2" tabindex="0">■最終行を求める</a><ol><li><a href="#toc3" tabindex="0">・セルの先頭から最終行を求める</a></li><li><a href="#toc4" tabindex="0">・最終行を求める開始位置を変更する</a></li><li><a href="#toc5" tabindex="0">・変数に最終行を格納する</a></li></ol></li><li><a href="#toc6" tabindex="0">■最終列を算出する</a><ol><li><a href="#toc7" tabindex="0">・セルの先頭から最終列を求める</a></li><li><a href="#toc8" tabindex="0">・最終列を求める開始位置を変更する</a></li><li><a href="#toc9" tabindex="0">・変数に最終列を格納する</a></li></ol></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>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">■プログラムの流れ</span></h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong><span class="fz-20px">最終行の反映先 = 開始位置.End(<span class="bold-red">データ型</span>).Row<br>最終列の反映先 = 開始位置.End(<span class="bold-red"><span class="bold-blue">データ型</span></span>).Column</span></strong></p>
</blockquote>



<p>　</p>



<figure class="wp-block-table is-style-regular"><table><thead><tr><th class="has-text-align-center" data-align="center"><strong><span class="fz-20px">データ型</span></strong></th><th class="has-text-align-center" data-align="center"><span class="fz-20px">最終行・列を求める方向</span></th></tr></thead><tbody><tr><td class="has-text-align-center" data-align="center"><span class="fz-20px"><span class="bold-red"><strong>xlDown</strong></span></span></td><td class="has-text-align-center" data-align="center"><span class="fz-20px">下</span></td></tr><tr><td class="has-text-align-center" data-align="center"><span class="fz-20px"><span class="bold-red"><strong>xlUp</strong></span></span></td><td class="has-text-align-center" data-align="center"><span class="fz-20px">上</span></td></tr><tr><td class="has-text-align-center" data-align="center"><span class="fz-20px"><span class="bold-blue">xlToRight</span></span></td><td class="has-text-align-center" data-align="center"><span class="fz-20px">右</span></td></tr><tr><td class="has-text-align-center" data-align="center"><span class="fz-20px"><span class="bold-blue">xlToLeft</span></span></td><td class="has-text-align-center" data-align="center"><span class="fz-20px">左</span></td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc2">■最終行を求める</span></h2>



<h3 class="wp-block-heading"><span id="toc3">・セルの先頭から最終行を求める</span></h3>



<p>では早速、<strong><span class="marker-under">最終行</span></strong>を求めてみましょう。<br>下図の見本をご覧ください。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="293" height="323" src="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-35.png" alt="" class="wp-image-1777" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-35.png 293w, https://dokugakuexcel.com/wp-content/uploads/2021/10/image-35-272x300.png 272w" sizes="(max-width: 293px) 100vw, 293px" /></figure>



<p>A列に数値が並んでいます。<br><strong><span class="marker-under-red">今回はA列の最終行を求めて「Ｃ3」に出力</span></strong>してみましょう。</p>



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



<p><strong><span class="fz-20px"><span class="marker-under-red">最終行の反映先 </span>= <span class="marker-under-blue">開始位置</span>.End(<span class="bold-red">データ型</span>).Row</span></strong></p>



<p>反映先は結果を表示する<span class="marker-under-red">「Ｃ3」</span>になります。<br>開始位置はデータの開始位置の<span class="marker-under-blue">「A1」</span>ですね。<br>データ型は下方向に最終行を求めたいので<span class="bold-red">「xlDown」</span>となります。</p>



<p>それではプログラムに置き換えてみましょう。<br>プログラムではこのようになります。</p>



<p><br><strong><span class="fz-20px">Range(<span class="marker-under-red">&#8220;C3&#8221;</span>) = Range(<span class="marker-under-blue">&#8220;A1&#8221;</span>).End(<span class="bold-red">xlDown</span>).Row</span></strong></p>



<p>では下記のマクロVBAを走らせてみましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Sub 最終行の取得()</p>



<p>Range(&#8220;C3&#8221;) = Range(&#8220;A1&#8221;).End(xlDown).Row</p>



<p>End Sub</p>
</blockquote>



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



<figure class="wp-block-image size-full"><img decoding="async" width="309" height="323" src="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-36.png" alt="" class="wp-image-1778" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-36.png 309w, https://dokugakuexcel.com/wp-content/uploads/2021/10/image-36-287x300.png 287w" sizes="(max-width: 309px) 100vw, 309px" /></figure>



<p>最終行を求めることができました。</p>



<h3 class="wp-block-heading"><span id="toc4">・最終行を求める開始位置を変更する</span></h3>



<p>ではA列に隙間が空いた場合を見てみましょう。</p>



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



<p>先ほどのプログラムを実行すると結果は「14」と変わりません。<br>これは<span class="marker-under">「A1」から開始してデータが無い行までを求めるので、一番近い「14」を算出</span>します。<br>なので実際の最終行の「18」を表示したい場合は<strong><span class="marker-under-blue">開始位置</span></strong>を変更することが必要です。</p>



<p>では<strong><span class="marker-under-blue">開始位置を「A16」</span></strong>からにしてみましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Sub 最終行の取得()</p>



<p><span class="marker-under-red">Range(&#8220;C3&#8221;) </span>=<span class="marker-under-blue"> Range(&#8220;A16&#8221;)</span>.End(<span class="bold-red">xlDown</span>).Row</p>



<p>End Sub</p>
</blockquote>



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



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



<p><strong><span class="marker-under">「A16」からの最終行を算出した「18」が結果</span></strong>として表示されました。</p>



<h3 class="wp-block-heading"><span id="toc5">・変数に最終行を格納する</span></h3>



<p>ちなみに最終行を求めた結果は変数にも格納が可能になります。<br>下の見本をご覧ください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Sub 最終行の取得()</p>



<p>Dim <span class="bold-blue">EndRow</span> As Variant</p>



<p><span class="bold-blue">EndRow</span> = Range(&#8220;A1&#8221;).End(xlDown).Row</p>



<p>End Sub</p>
</blockquote>



<p>このプログラムでは変数名「<span class="bold-blue">EndRow</span>」に最終行を格納することが可能です。<br>もちろんこの数値を活用してセルを選択したり、<br>For Toなどといったものにも活用することもできます。</p>



<h2 class="wp-block-heading"><span id="toc6">■最終列を算出する</span></h2>



<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="694" height="98" src="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-39.png" alt="" class="wp-image-1781" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-39.png 694w, https://dokugakuexcel.com/wp-content/uploads/2021/10/image-39-300x42.png 300w" sizes="(max-width: 694px) 100vw, 694px" /></figure>



<p>１行目が<strong><span class="marker-under">何列までデータがあるか</span></strong>求めていきます。<br>今回は最終列を求めて<strong><span class="marker-under-red">「B4」</span></strong>に出力してみましょう。</p>



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



<p><strong><span class="fz-20px"><span class="marker-under-red">最終列の反映先</span> =<span class="marker-under-blue"> 開始位置</span>.End(<span class="bold-red">データ型</span>).Column</span></strong></p>



<p>反映先は結果を表示する<span class="marker-under-red">「B4」</span>になります。<br>開始位置はデータの開始位置の<span class="marker-under-blue">「A1」</span>ですね。<br>データ型は下方向に最終行を求めたいので<span class="bold-red">「xlToRight」</span>となります。</p>



<p>それではプログラムに置き換えてみましょう。<br>プログラムではこのようになります。</p>



<p><br><strong><span class="fz-20px"><span class="marker-under-red">Range(&#8220;B4&#8221;) </span>= <span class="marker-under-blue">Range(&#8220;A1&#8221;)</span>.End(<span class="bold-red">xlToRight</span>).Column</span></strong></p>



<p>では下記のマクロVBAを走らせてみましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Sub 最終列の取得()</p>



<p>Range(&#8220;B4&#8221;) = Range(&#8220;A1&#8221;).End(xlToRight).Column</p>



<p>End Sub</p>
</blockquote>



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



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



<p>データは「Ｊ列」つまり<strong><span class="marker-under">「１０列目」</span></strong>までデータがあるので<br>B4には<strong><span class="marker-under">「10」</span></strong>が出力されました。</p>



<h3 class="wp-block-heading"><span id="toc8">・最終列を求める開始位置を変更する</span></h3>



<p>では１行目のデータに隙間が空いた場合を見てみましょう。</p>



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



<figure class="wp-block-image size-full"><img decoding="async" width="261" height="101" src="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-42.png" alt="" class="wp-image-1784"/></figure>



<p><strong><span class="marker-under">４列目が空白なので「3」が出力</span></strong>されました。<br>これは「A1」から開始してデータが無い行までを求めるので、一番近い「3」を算出します。<br>なので実際の最終行の「10」を表示したい場合は<span class="marker-under-blue">開始位置</span>を変更することが必要です。</p>



<p>では開始位置を<strong><span class="marker-under-blue">「E1」</span></strong>からにしてみましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Sub 最終列の取得()</p>



<p><span class="marker-under-red">Range(&#8220;B4&#8221;) </span>= <span class="marker-under-blue">Range(&#8220;E1&#8221;)</span>.End(<span class="bold-red">xlToRight</span>).Column</p>



<p>End Sub</p>
</blockquote>



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



<p><span class="marker-under"><strong>「E1」から右方向に最終列を算出した「10」が結果</strong></span>として表示されました。</p>



<h3 class="wp-block-heading"><span id="toc9">・変数に最終列を格納する</span></h3>



<p>ちなみに最終列を求めた結果は最終行と同様、変数にも格納が可能になります。<br>下の見本をご覧ください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Sub 最終列の取得()</p>



<p>Dim <span class="bold-blue">EndColumn</span> As Variant</p>



<p><span class="bold-blue">EndColumn</span> = Range(&#8220;E1&#8221;).End(xlToRight).Column</p>



<p>End Sub</p>
</blockquote>



<p>このプログラムで行くと<span class="bold-blue">変数名「EndColumn」</span>に最終列を格納することが可能です。<br>もちろんこの数値を活用してセルを選択したり、<br>For Toなどといった繰り返し処理の変数としても活用することもできます。</p>



<h2 class="wp-block-heading"><span id="toc10">■空白の位置が複数・不明な時でも最終行・列を求める。</span></h2>



<p>これまで最終行・列を求める方法として<br>先頭から求める方法や、開始位置をずらして求める方法など説明しました。</p>



<p>しかし空白の位置が不明な状態では開始位置すらわからないため<br>空白をよけることが不可能です。</p>



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



<p>このような状態でも最終行・列は求めることができます。</p>



<p>例で最終行を求めます。<br>考え方はこれまで、先頭行を入力して下方向に最終行を求めてました。</p>



<p>この考え方を変えて、<strong><span class="marker-under">エクセル自体の最終行から上方向に最終行を求めます</span></strong>。<br>ちなみにエクセルの最終行を求める方法は下記の通りです。</p>



<p><strong><span class="fz-22px">変数 = <span class="marker-under-red">Rows.Count</span></span></strong></p>



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



<figure class="wp-block-image size-full"><img decoding="async" width="290" height="97" src="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-44.png" alt="" class="wp-image-1786"/></figure>



<p><br>変数は<span class="marker-under-blue">EndRow</span>を使用しました。</p>



<p>変数EndRowには<span class="marker-under-blue">「1048576」</span>となってます。<br>つまり現在私が使用しているエクセルの最終行は「1048576行」となります。</p>



<p>そこから<strong><span class="marker-under">上方向に最終行を求めれば最終行を導き出すこと</span></strong>が可能です。<br>つまりデータ型は「<span class="bold-red">xlUp</span>」を使用します。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Sub 空白を無視した最終行()</p>



<p>Dim <span class="marker-under-blue">EndRow</span> As Long</p>



<p><span class="marker-under-blue">EndRow</span> = <span class="marker-under-red">Rows.Count</span></p>



<p>Range(&#8220;C3&#8221;) = Cells(<span class="marker-under-blue">EndRow</span>, 1).End(<span class="bold-red">xlUp</span>).Row</p>



<p>End Sub</p>
</blockquote>



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



<figure class="wp-block-image size-full"><img decoding="async" width="320" height="430" src="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-45.png" alt="" class="wp-image-1787" srcset="https://dokugakuexcel.com/wp-content/uploads/2021/10/image-45.png 320w, https://dokugakuexcel.com/wp-content/uploads/2021/10/image-45-223x300.png 223w" sizes="(max-width: 320px) 100vw, 320px" /></figure>



<p>空白をよけて、下から上方向に最終行を求めることで<br>正解の「20」を表示することができました。</p>



<p>B列なら<br><strong>求めた結果= Cells(EndRow, 2).End(xlUp).Row</strong></p>



<p>Ｃ列なら<br><strong>求めた結果 = Cells(EndRow, 3).End(xlUp).Row</strong></p>



<p>で対応可能です。</p>



<p>列でも同様です。<br>考え方は全く同じで、エクセル自体の最終列を変数に置き、<br>そこから左方向に最終列を求めることで空白を無視した最終列を求めることができます。<br>プログラムは下記の通りです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Sub 空白を無視した最終列()</p>



<p>Dim <span class="marker-under-blue">EndColumn</span> As Long</p>



<p><span class="marker-under-blue">EndColumn</span> = <span class="marker-under-red">Columns.Count</span></p>



<p>Range(&#8220;B4&#8221;) = Cells(1, <span class="marker-under-blue">EndColumn</span>).End(<span class="bold-red">xlToLeft</span>).Column</p>



<p>End Sub</p>
</blockquote>



<p>こちらも２列目なら<br><strong>求めた結果= Cells(2, EndColumn).End(xlToLeft).Column</strong></p>



<p>3列目なら<br><strong>求めた結果 = Cells(3, EndColumn).End(xlToLeft).Column</strong></p>



<p>となります。</p>



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



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



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



<p><a href="https://docs.microsoft.com/ja-jp/office/vba/api/excel.range.end">Range.End プロパティ (Excel) | Microsoft Docs</a></p>



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



<p>いかがだったでしょうか。<br>最終行の求め方がわかれば<br>データの蓄積を最終行・列で追加していくことも可能です。</p>



<p>さらにどこにあるのかわからない空白を無視できる方法は<br>とても便利な機能です。</p>



<p>それでは次回の記事でお会いしましょう。</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1776</post-id>	</item>
	</channel>
</rss>
