<?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>変数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/%E5%A4%89%E6%95%B0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Fri, 03 Apr 2026 22:02:53 +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://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>変数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのLET関数の使い方｜変数定義で数式簡潔化</title>
		<link>https://mashukabu.com/spreadsheet-let-function/</link>
					<comments>https://mashukabu.com/spreadsheet-let-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 22 Mar 2026 01:12:21 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[LET]]></category>
		<category><![CDATA[Sheets独自]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[変数]]></category>
		<category><![CDATA[数式簡潔化]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4969</guid>

					<description><![CDATA[GoogleスプレッドシートのLET関数の使い方を基本から解説。変数定義で数式を簡潔にする方法、IF+VLOOKUPの整理テクニック、パフォーマンス改善の仕組み、Excelとの違いまで実例付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p>「この数式、長すぎて何をやってるかわからない&#8230;」。スプレッドシートで複雑な数式を組んでいると、こんな場面によく出くわしますよね。</p>



<p>しかも同じ計算を数式の中で何度も書いていると、修正するときにどこを直せばいいのか迷ってしまいます。</p>



<p>そんなときに便利なのが <strong>LET関数</strong> です。数式の中で「変数」を定義して、繰り返し使い回せるようになります。</p>



<p>この記事では、LET関数の基本構文から、実務で役立つ数式の整理テクニック、パフォーマンス改善の仕組みまでまとめて紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのLET関数とは？</a></li><li><a href="#toc2" tabindex="0">LET関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">LET関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">変数を1つ定義する</a></li><li><a href="#toc7" tabindex="0">変数を複数定義する</a></li><li><a href="#toc8" tabindex="0">変数に数式の結果を代入する</a></li></ol></li><li><a href="#toc9" tabindex="0">LET関数の実践的な使い方・応用例</a><ol><li><a href="#toc10" tabindex="0">複雑なIF + VLOOKUP数式をLETで整理する</a></li><li><a href="#toc11" tabindex="0">同じ計算を繰り返さずパフォーマンスを改善する</a></li><li><a href="#toc12" tabindex="0">FILTER関数と組み合わせる</a></li><li><a href="#toc13" tabindex="0">IFS関数の条件をLETで整理する</a></li></ol></li><li><a href="#toc14" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc15" tabindex="0">Excelとの違い</a></li><li><a href="#toc16" tabindex="0">まとめ</a><ol><li><a href="#toc17" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのLET関数とは？</span></h2>



<p>LET関数（読み方: れっと）は、<strong>数式の中で変数を定義し、その変数を使って計算できる関数</strong>です。</p>



<p>名前は英語の「let（〜を〜とする）」からきています。プログラミングでも変数宣言に使われるおなじみの単語ですね。</p>



<p>たとえば <code>VLOOKUP(A2,B:D,3,FALSE)</code> の結果を何度も使いたいとします。LET関数で <code>price</code> という変数に入れておけば、数式の中で <code>price</code> と書くだけで参照できます。</p>



<p>LET関数にできることをまとめると、次のとおりです。</p>



<ul class="wp-block-list"><li>数式の中で変数（名前と値のペア）を定義する</li><li>同じ計算を何度も書かずに済むので数式が短くなる</li><li>変数名を付けることで数式の意味が読み取りやすくなる</li><li>同じ計算を1回だけ実行するのでパフォーマンスが向上する</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>LET関数はGoogleスプレッドシートの全アカウントで使えます。ExcelにもLET関数はありますが、対応バージョンが限られます（詳しくは後述）。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc2">LET関数の書き方（構文と引数）</span></h2>



<h3 class="wp-block-heading"><span id="toc3">基本構文</span></h3>



<pre class="wp-block-code"><code>=LET(名前1, 値1, [名前2, 値2, ...], 数式)</code></pre>



<p>「名前」と「値」をペアで指定し、最後に「数式」を書きます。数式の中で定義した名前を使えるのがポイントです。</p>



<h3 class="wp-block-heading"><span id="toc4">引数の説明</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>名前1</td><td>必須</td><td>変数の名前。アルファベット・数字・アンダースコアで構成する</td></tr><tr><td>値1</td><td>必須</td><td>名前1に割り当てる値。セル参照・数式・直接値のいずれも可</td></tr><tr><td>名前2, 値2〜</td><td>任意</td><td>2組目以降の変数定義。最大126組まで指定可能</td></tr><tr><td>数式</td><td>必須</td><td>定義した変数を使った計算式。最後の引数が数式になる</td></tr></tbody></table></figure>



<p>変数名にはセル参照と同じ名前（A1やB2など）は使えません。<code>price</code> や <code>total</code> のように、中身がわかる名前を付けておくと読みやすくなりますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>引数の数は必ず <strong>奇数</strong> になります。「名前, 値」のペアが1組以上 + 最後の「数式」で、最低3つです。偶数個を指定するとエラーになるので注意してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc5">LET関数の基本的な使い方</span></h2>



<p>まずはシンプルな例で動きを確認してみましょう。</p>



<h3 class="wp-block-heading"><span id="toc6">変数を1つ定義する</span></h3>



<p>税込価格を計算する例です。</p>



<pre class="wp-block-code"><code>=LET(tax, 1.1, A2 * tax)</code></pre>



<p><code>tax</code> という変数に <code>1.1</code> を代入し、A2 に掛けています。A2 が 1000 なら結果は <strong>1100</strong> です。</p>



<p>この程度なら <code>=A2*1.1</code> でも十分ですが、数式が長くなると変数の効果が実感できます。</p>



<h3 class="wp-block-heading"><span id="toc7">変数を複数定義する</span></h3>



<p>本体価格と税率をそれぞれ変数にして、税込価格を計算する例です。</p>



<pre class="wp-block-code"><code>=LET(price, A2, tax, 1.1, price * tax)</code></pre>



<p><code>price</code> に A2 の値、<code>tax</code> に 1.1 を代入し、最後の <code>price * tax</code> で計算しています。</p>



<p>変数を複数使うと「どの値が何を意味しているか」が明確になります。数式だけ見ても意味がわかるのがLET関数の大きなメリットですよ。</p>



<h3 class="wp-block-heading"><span id="toc8">変数に数式の結果を代入する</span></h3>



<p>変数の「値」には数式を直接書くこともできます。</p>



<pre class="wp-block-code"><code>=LET(total, SUM(B2:B10), avg, total / COUNTA(B2:B10), avg)</code></pre>



<p><code>total</code> に合計値を代入し、<code>avg</code> に平均値を代入しています。<code>total</code> を <code>avg</code> の計算で再利用しているのがポイントです。</p>



<p>このように、先に定義した変数を後の変数で使えるので、段階的に計算を組み立てられます。</p>



<h2 class="wp-block-heading"><span id="toc9">LET関数の実践的な使い方・応用例</span></h2>



<h3 class="wp-block-heading"><span id="toc10">複雑なIF + VLOOKUP数式をLETで整理する</span></h3>



<p>LET関数が最も威力を発揮するのは、同じ計算が数式内で繰り返されるケースです。</p>



<p><strong>Before（LETなし）:</strong></p>



<pre class="wp-block-code"><code>=IF(VLOOKUP(A2,商品マスタ!A:C,3,FALSE)&gt;=1000, VLOOKUP(A2,商品マスタ!A:C,3,FALSE)*0.9, VLOOKUP(A2,商品マスタ!A:C,3,FALSE))</code></pre>



<p>同じ <code>VLOOKUP</code> が3回も登場していて読みにくいですよね。</p>



<p><strong>After（LETあり）:</strong></p>



<pre class="wp-block-code"><code>=LET(price, VLOOKUP(A2,商品マスタ!A:C,3,FALSE), IF(price&gt;=1000, price*0.9, price))</code></pre>



<p>VLOOKUPの結果を <code>price</code> に1回だけ代入しています。数式の長さが半分以下になり、何をしているかも一目でわかります。</p>



<h3 class="wp-block-heading"><span id="toc11">同じ計算を繰り返さずパフォーマンスを改善する</span></h3>



<p>LET関数を使うと、変数に代入した計算は内部的に <strong>1回だけ</strong> 実行されます。</p>



<p>たとえば先ほどのBefore版では、VLOOKUPが3回実行されます。対してAfter版のLET関数では1回で済みます。</p>



<p>データ量が多いシートでは、この差が処理速度に影響してきます。数千行のデータでVLOOKUPやSUMIFSを繰り返している場合は要注意です。LET関数でまとめると、スプレッドシートの動作が軽くなることがありますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">FILTER関数と組み合わせる</span></h3>



<p><a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>の結果を変数に入れて、さらに加工する例です。</p>



<pre class="wp-block-code"><code>=LET(filtered, FILTER(A2:C20, B2:B20=&quot;東京&quot;), SORT(filtered, 3, FALSE))</code></pre>



<p>東京のデータだけをFILTERで抽出し、その結果を3列目（たとえば売上）の降順でソートしています。</p>



<p>FILTERとSORTを別々に書くと入れ子が深くなりますが、LET関数で段階的に処理すると読みやすくなります。</p>



<h3 class="wp-block-heading"><span id="toc13">IFS関数の条件をLETで整理する</span></h3>



<p><a href="https://mashukabu.com/spreadsheet-ifs-function/">IFS関数</a>で複数条件を判定する数式をLETで整理する例です。</p>



<pre class="wp-block-code"><code>=LET(score, B2, IFS(score&gt;=90,&quot;S&quot;, score&gt;=70,&quot;A&quot;, score&gt;=50,&quot;B&quot;, TRUE,&quot;C&quot;))</code></pre>



<p>B2 を <code>score</code> という変数に代入しています。IFS関数の中で <code>score</code> を4回参照していますが、変数名のおかげで「何を判定しているか」が明確です。</p>



<h2 class="wp-block-heading"><span id="toc14">よくあるエラーと対処法</span></h2>



<p>LET関数で「思った結果にならない」ケースをまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#NAME? エラーが出る</td><td>変数名にセル参照と同じ名前（A1, B2など）を使っている</td><td>セル参照と重複しない名前に変更する（例: <code>val</code>, <code>x</code>）</td></tr><tr><td>#NAME? エラーが出る</td><td>変数名にスペースや記号を含めている</td><td>アルファベット・数字・アンダースコアのみ使用する</td></tr><tr><td>#VALUE! エラーが出る</td><td>引数の数が偶数になっている（名前と値のペアだけで数式がない）</td><td>最後に数式を追加する。引数の数は奇数が正しい</td></tr><tr><td>変数が認識されない</td><td>数式の中でスペルミスがある</td><td>変数名の大文字小文字を含めて正確に一致させる</td></tr><tr><td>数式が長いまま変わらない</td><td>LET関数の効果を誤解している</td><td>LET関数は数式の「見た目」を整理するもの。セルに表示される結果は変わらない</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>変数名はシンプルに短く付けるのがおすすめです。<code>x</code>, <code>val</code>, <code>price</code> のように意味がわかる最小限の名前にしておくと、数式全体が読みやすくなります。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc15">Excelとの違い</span></h2>



<p>LET関数はExcelとGoogleスプレッドシートで基本的に同じ動作です。ただし、利用できるバージョンに違いがあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>Excel</th><th>Googleスプレッドシート</th></tr></thead><tbody><tr><td>対応バージョン</td><td>Microsoft 365 / Excel 2021以降</td><td>全アカウント対応</td></tr><tr><td>構文</td><td>=LET(名前1, 値1, &#8230;, 数式)</td><td>=LET(名前1, 値1, &#8230;, 数式)</td></tr><tr><td>変数ペアの上限</td><td>126組</td><td>126組</td></tr><tr><td>動作</td><td>変数を定義して数式内で再利用</td><td>変数を定義して数式内で再利用</td></tr><tr><td>パフォーマンス最適化</td><td>あり（1回だけ計算）</td><td>あり（1回だけ計算）</td></tr></tbody></table></figure>



<p>構文も動作もほぼ同じです。Excelのファイルをスプレッドシートで開いてもLET関数はそのまま動作します。</p>



<p>お使いのExcelがMicrosoft 365またはExcel 2021以降かどうか、確認しておきましょう。それ以前のバージョンでは #NAME? エラーになります。</p>



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



<p>LET関数は、数式の中で変数を定義して再利用できる関数です。</p>



<p>ポイントを整理します。</p>



<ul class="wp-block-list"><li>構文は <code>=LET(名前1, 値1, ..., 数式)</code> で、名前と値をペアで指定する</li><li>同じ計算を何度も書かなくて済むので、数式が短くなる</li><li>変数名を付けることで、数式の意味が読み取りやすくなる</li><li>同じ計算は内部的に1回だけ実行されるため、パフォーマンスも向上する</li><li>引数の数は必ず奇数。偶数だとエラーになる</li><li>変数名にセル参照と同じ名前（A1など）は使えない</li><li><a href="https://mashukabu.com/spreadsheet-lambda-function/">LAMBDA関数</a>は「関数を定義」、LET関数は「変数を定義」と覚えると使い分けやすい</li></ul>



<p>まずは <code>=LET(x, 10, x*2)</code> で「変数 x に10を入れて2倍 = 20」から試してみてください。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc17">関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-lambda-function/">スプレッドシートのLAMBDA関数の使い方｜カスタム関数定義</a></li><li><a href="https://mashukabu.com/spreadsheet-vlookup-function/">スプレッドシートのVLOOKUP関数の使い方｜別シート参照・エラー対処まで解説</a></li><li><a href="https://mashukabu.com/spreadsheet-if-function/">スプレッドシートのIF関数の使い方｜条件分岐を基本から解説</a></li><li><a href="https://mashukabu.com/spreadsheet-filter-function/">スプレッドシートのFILTER関数の使い方｜条件抽出を自動化する方法</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-let-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VBA変数の使い方｜宣言・データ型・命名ルールを基本から解説</title>
		<link>https://mashukabu.com/excel-vba-variable-explanation/</link>
					<comments>https://mashukabu.com/excel-vba-variable-explanation/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 13 Nov 2021 14:36:21 +0000</pubDate>
				<category><![CDATA[VBA・マクロ]]></category>
		<category><![CDATA[Dim]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Option Explicit]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[データ型]]></category>
		<category><![CDATA[変数]]></category>
		<category><![CDATA[変数宣言]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=240</guid>

					<description><![CDATA[VBA変数の使い方を初心者向けにわかりやすく解説。Dim文による宣言方法、データ型の選び方、変数名の命名ルール4つ、日本語変数名は使えるのか、Option Explicitで宣言を強制する設定方法まで、業務で使える知識をコード例付きでまとめました。]]></description>
										<content:encoded><![CDATA[
<p>VBAを使い始めると、最初にぶつかるのが「変数」という概念です。</p>



<p>「変数って何？」「どう書けばいいの？」と感じる方も多いですよね。簡単なマクロなら変数なしでも動きますが、少し規模が大きくなると変数の知識が欠かせません。</p>



<p>この記事では、VBA変数の基本から宣言方法、データ型の選び方、命名ルールまでまとめて解説します。コピペで動くコード例もあるので、実際に手を動かしながら読み進めてみてください。</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">VBAの変数とは</a><ol><li><a href="#toc2" tabindex="0">変数は「名前付きの箱」</a></li><li><a href="#toc3" tabindex="0">変数を使うメリット</a></li></ol></li><li><a href="#toc4" tabindex="0">変数名の命名ルール</a><ol><li><a href="#toc5" tabindex="0">守るべき4つのルール</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><ol><li><a href="#toc9" tabindex="0">よく使うデータ型一覧</a></li><li><a href="#toc10" tabindex="0">データ型を省略するとどうなる？</a></li></ol></li><li><a href="#toc11" tabindex="0">変数の宣言方法（Dim文の書き方）</a><ol><li><a href="#toc12" tabindex="0">基本の宣言</a></li><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">Option Explicitで変数宣言を強制する</a></li></ol></li><li><a href="#toc19" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">VBAの変数とは</span></h2>



<h3 class="wp-block-heading"><span id="toc2">変数は「名前付きの箱」</span></h3>



<p>変数とは、データを一時的に入れておける「名前付きの箱」です。</p>



<p>たとえば「りんご」という文字列を保管したい場合、<code>fruit</code> という名前の箱を用意して、そこに「りんご」を入れます。数値の100を保管したいなら、<code>totalCount</code> という名前の箱に100を入れるイメージです。</p>



<p>この「箱の名前」のことを変数名と呼びます。変数名は自分で好きに決められますが、いくつかルールがあります（後ほど詳しく解説します）。</p>



<h3 class="wp-block-heading"><span id="toc3">変数を使うメリット</span></h3>



<p>「わざわざ箱に入れなくても、直接値を書けばいいのでは？」と思うかもしれません。</p>



<p>変数を使う最大のメリットは、修正が一箇所で済むことです。具体的なコード例で確認しましょう。</p>



<p>変数を使わないコードでは、同じ値が複数の場所に散らばります。</p>



<pre class="wp-block-code"><code>Sub SampleWithoutVariable()
    MsgBox &quot;りんごを食べることで、りんご特有の味わいが広がります。&quot;
    MsgBox &quot;想像するだけで食欲をそそられるりんごですが、&quot; &amp; vbCrLf &amp; _
           &quot;私はりんごが大好きです。&quot;
End Sub</code></pre>



<p>この文章の「りんご」を「オレンジ」に変えたい場合、すべての「りんご」を1つずつ書き換える必要があります。</p>



<p>一方、変数を使ったコードなら修正は1箇所だけです。</p>



<pre class="wp-block-code"><code>Sub SampleWithVariable()
    Dim fruit As String '果物名を格納する変数
    fruit = &quot;りんご&quot;

    MsgBox fruit &amp; &quot;を食べることで、&quot; &amp; fruit &amp; &quot;特有の味わいが広がります。&quot;
    MsgBox &quot;想像するだけで食欲をそそられる&quot; &amp; fruit &amp; &quot;ですが、&quot; &amp; vbCrLf &amp; _
           &quot;私は&quot; &amp; fruit &amp; &quot;が大好きです。&quot;
End Sub</code></pre>



<p><code>fruit = "りんご"</code> の部分を <code>fruit = "オレンジ"</code> に変えるだけで、すべてのメッセージが一括で変わります。</p>



<p>このように、変数を使うと以下のメリットがあります。</p>



<ul class="wp-block-list"><li><strong>修正が1箇所で済む</strong>: 同じ値を何度も書き換える手間がなくなる</li><li><strong>コードが読みやすくなる</strong>: 変数名から「何のデータか」がわかる</li><li><strong>計算結果を再利用できる</strong>: 一度計算した結果を変数に入れておけば、何度でも使い回せる</li><li><strong>バグを減らせる</strong>: 値の書き間違いや修正漏れを防止できる</li></ul>



<h2 class="wp-block-heading"><span id="toc4">変数名の命名ルール</span></h2>



<h3 class="wp-block-heading"><span id="toc5">守るべき4つのルール</span></h3>



<p>変数名は自由に決められますが、以下の4つのルールは必ず守ってください。ルールに違反するとエラーになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>No.</th><th>ルール</th><th>OK例</th><th>NG例</th></tr></thead><tbody><tr><td>1</td><td>使える文字は英数字・日本語・アンダーバー（_）のみ</td><td><code>userName</code></td><td><code>user-name</code>（ハイフン不可）</td></tr><tr><td>2</td><td>先頭に数字・アンダーバーは使えない</td><td><code>count1</code></td><td><code>1count</code>（数字始まり不可）</td></tr><tr><td>3</td><td>同じスコープ内で同じ変数名は使えない</td><td>&#8212;</td><td>&#8212;</td></tr><tr><td>4</td><td>半角255文字以内</td><td>&#8212;</td><td>&#8212;</td></tr></tbody></table></figure>



<p>スペースや記号（<code>-</code> <code>!</code> <code>@</code> など）は使えません。また、VBAの予約語（<code>Sub</code>、<code>Dim</code>、<code>If</code> など）も変数名にはできません。</p>



<h3 class="wp-block-heading"><span id="toc6">実務で使える命名パターン</span></h3>



<p>ルールを守るだけなら簡単ですが、実務では「後から見てもわかりやすい名前」を付けることが大切です。</p>



<p>よく使われる命名パターンを紹介します。</p>



<figure class="wp-block-table"><table><thead><tr><th>パターン</th><th>例</th><th>説明</th></tr></thead><tbody><tr><td>キャメルケース</td><td><code>userName</code>, <code>totalAmount</code></td><td>単語の区切りを大文字にする。VBAで最も一般的</td></tr><tr><td>用途 + 型</td><td><code>strFileName</code>, <code>lngRowCount</code></td><td>先頭にデータ型の略称を付ける（ハンガリアン記法）</td></tr><tr><td>日本語</td><td><code>合計金額</code>, <code>対象シート</code></td><td>日本語でそのまま命名</td></tr></tbody></table></figure>



<p>チームで運用するマクロの場合は、命名規則を統一しておくと引き継ぎがスムーズになります。個人利用なら、自分が読み返してすぐにわかる名前であれば問題ありません。</p>



<h3 class="wp-block-heading"><span id="toc7">日本語の変数名は使える？</span></h3>



<p>結論から言うと、個人で使う分には問題ありません。</p>



<p>過去のExcelバージョンでは日本語の変数名が原因でエラーが出ることもありましたが、現在のExcel（2019 / 2021 / Microsoft 365）では解消されています。</p>



<p>ただし、以下の点は意識しておきましょう。</p>



<ul class="wp-block-list"><li>海外のVBAサンプルコードと混在すると読みにくくなる</li><li>将来的に他のプログラミング言語に移行する際、日本語変数名の習慣がネックになる可能性がある</li><li>全角・半角の入力ミスでエラーになるケースがある</li></ul>



<p>実務で迷ったら、英語のキャメルケース（<code>userName</code> のような書き方）がおすすめです。VBAの公式ドキュメントやサンプルコードのほとんどが英語で書かれているため、学習効率も上がります。</p>



<h2 class="wp-block-heading"><span id="toc8">データ型の一覧と選び方</span></h2>



<h3 class="wp-block-heading"><span id="toc9">よく使うデータ型一覧</span></h3>



<p>変数に入れるデータの種類を指定するのが「データ型」です。箱のサイズや形を決めるようなイメージで考えてください。</p>



<p>VBAで業務によく使うデータ型を以下の表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>データ型</th><th>名称</th><th>格納できるデータ</th><th>使用例</th></tr></thead><tbody><tr><td><code>String</code></td><td>文字列型</td><td>テキスト（最大約20億文字）</td><td>ファイル名、シート名、セルの値</td></tr><tr><td><code>Long</code></td><td>長整数型</td><td>-2,147,483,648 ~ 2,147,483,647</td><td>行番号、カウンター、個数</td></tr><tr><td><code>Double</code></td><td>倍精度浮動小数点数型</td><td>小数を含む数値</td><td>金額計算、割合、平均値</td></tr><tr><td><code>Boolean</code></td><td>ブール型</td><td><code>True</code> または <code>False</code></td><td>条件フラグ、ON/OFF判定</td></tr><tr><td><code>Date</code></td><td>日付型</td><td>日付と時刻</td><td>開始日、期限、タイムスタンプ</td></tr><tr><td><code>Variant</code></td><td>バリアント型</td><td>すべてのデータ</td><td>セルの値（型が不定の場合）</td></tr><tr><td><code>Object</code></td><td>オブジェクト型</td><td>ワークブック、シート等</td><td>シートやセル範囲の操作</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p><code>Integer</code>（整数型）もありますが、扱える範囲が -32,768 ~ 32,767 と狭いため、整数には <code>Long</code> を使うのが現在の主流です。VBAの内部処理でも <code>Integer</code> は <code>Long</code> に変換されるため、最初から <code>Long</code> を選んで問題ありません。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc10">データ型を省略するとどうなる？</span></h3>



<p>データ型を指定しない場合、自動的に <code>Variant</code> 型になります。</p>



<pre class="wp-block-code"><code>Dim myValue '← データ型を省略すると Variant 型になる</code></pre>



<p><code>Variant</code> 型はどんなデータでも入れられるので便利に思えますが、次のデメリットがあります。</p>



<ul class="wp-block-list"><li><strong>メモリを多く消費する</strong>: 他のデータ型の数倍のメモリを使う</li><li><strong>処理速度が遅くなる</strong>: データ型の判定が毎回発生する</li><li><strong>型の不一致によるバグが起きやすい</strong>: 数値のつもりが文字列として扱われることがある</li></ul>



<p>入れるデータが決まっているなら、必ずデータ型を指定しましょう。迷ったときの選び方は次の通りです。</p>



<ul class="wp-block-list"><li>文字を入れる → <code>String</code></li><li>整数を入れる → <code>Long</code></li><li>小数を入れる → <code>Double</code></li><li>日付を入れる → <code>Date</code></li><li>True/Falseを入れる → <code>Boolean</code></li><li>セルの値で型が不定 → <code>Variant</code></li></ul>



<h2 class="wp-block-heading"><span id="toc11">変数の宣言方法（Dim文の書き方）</span></h2>



<h3 class="wp-block-heading"><span id="toc12">基本の宣言</span></h3>



<p>変数を使うには、最初に「宣言」が必要です。宣言とは「この名前で、この型の箱を用意します」とVBAに伝えることです。</p>



<p><code>Dim</code> 文を使って次のように書きます。</p>



<pre class="wp-block-code"><code>Dim 変数名 As データ型</code></pre>



<p>具体例を見てみましょう。</p>



<pre class="wp-block-code"><code>Dim userName As String    '文字列を入れる変数
Dim rowCount As Long      '整数を入れる変数
Dim taxRate As Double     '小数を入れる変数
Dim startDate As Date     '日付を入れる変数
Dim isFinished As Boolean 'True/Falseを入れる変数</code></pre>



<p><code>Dim</code>、変数名、<code>As</code>、データ型の間は、それぞれ半角スペースで区切ります。スペースがないとエラーになるので注意してください。</p>



<h3 class="wp-block-heading"><span id="toc13">値の代入</span></h3>



<p>宣言した変数にデータを入れることを「代入」と言います。<code>=</code>（イコール）を使って次のように書きます。</p>



<pre class="wp-block-code"><code>Dim userName As String
userName = &quot;田中太郎&quot;

Dim rowCount As Long
rowCount = 100

Dim taxRate As Double
taxRate = 0.1</code></pre>



<p>文字列を代入する場合は、値をダブルクォーテーション（<code>"</code>）で囲みます。数値や <code>True</code> / <code>False</code> にはダブルクォーテーションは不要です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>オブジェクト型（<code>Worksheet</code>、<code>Range</code> など）に代入する場合は <code>Set</code> 文を使います。<code>Set</code> を付け忘れると実行時エラーになります。<br><code></code><code>vba<br>Dim ws As Worksheet<br>Set ws = ThisWorkbook.Sheets("Sheet1") 'Setが必要<br></code><code></code></p></blockquote>



<h3 class="wp-block-heading"><span id="toc14">複数の変数をまとめて宣言</span></h3>



<p>同じデータ型の変数が複数ある場合、1行にまとめたくなるかもしれません。ただし、VBAでは次の書き方に注意が必要です。</p>



<pre class="wp-block-code"><code>'NG: aとbはVariant型になってしまう
Dim a, b, c As Long

'OK: すべてLong型で宣言される
Dim a As Long, b As Long, c As Long</code></pre>



<p>カンマで区切っても、<code>As Long</code> は最後の変数にしか適用されません。すべての変数にデータ型を明示するのが正しい書き方です。</p>



<h2 class="wp-block-heading"><span id="toc15">変数を使った実践コード</span></h2>



<p>ここまでの知識を使って、実務で役立つコードを書いてみましょう。</p>



<h3 class="wp-block-heading"><span id="toc16">基本コード: セルの値を変数で操作する</span></h3>



<pre class="wp-block-code"><code>Sub BasicVariableExample()
    Dim productName As String '商品名
    Dim unitPrice As Long     '単価
    Dim quantity As Long      '数量
    Dim totalPrice As Long    '合計金額

    '変数にセルの値を代入
    productName = Range(&quot;A2&quot;).Value
    unitPrice = Range(&quot;B2&quot;).Value
    quantity = Range(&quot;C2&quot;).Value

    '計算結果を変数に格納
    totalPrice = unitPrice * quantity

    '結果をセルに書き出す
    Range(&quot;D2&quot;).Value = totalPrice

    MsgBox productName &amp; &quot;の合計金額は &quot; &amp; totalPrice &amp; &quot; 円です。&quot;
End Sub</code></pre>



<p>このコードの流れを整理します。</p>



<ol class="wp-block-list"><li>4つの変数を宣言（商品名・単価・数量・合計金額）</li><li>セルA2~C2の値を変数に代入</li><li>単価 x 数量の計算結果を <code>totalPrice</code> に格納</li><li>結果をセルD2に書き出し、メッセージボックスで表示</li></ol>



<p>変数を使うことで「何のデータを操作しているか」がコードを読むだけでわかります。</p>



<h3 class="wp-block-heading"><span id="toc17">応用コード: 複数行を一括処理する</span></h3>



<pre class="wp-block-code"><code>Sub CalculateAllRows()
    Dim lastRow As Long       '最終行
    Dim i As Long             'ループカウンター
    Dim unitPrice As Long     '単価
    Dim quantity As Long      '数量

    '最終行を取得
    lastRow = Cells(Rows.Count, &quot;A&quot;).End(xlUp).Row

    'データ行をループ処理（2行目から）
    For i = 2 To lastRow
        unitPrice = Cells(i, 2).Value  'B列: 単価
        quantity = Cells(i, 3).Value   'C列: 数量

        '合計金額をD列に出力
        Cells(i, 4).Value = unitPrice * quantity
    Next i

    MsgBox &quot;計算が完了しました。対象: &quot; &amp; (lastRow - 1) &amp; &quot; 件&quot;
End Sub</code></pre>



<p>このコードでは、For文で変数 <code>i</code> を使ってデータの行数分だけ処理を繰り返しています。ループ処理は変数の代表的な活用場面です。</p>



<p>For文の詳しい使い方は、以下の記事で解説しています。</p>



<p><a href="https://mashukabu.com/excel-vba-howto-use-for/">VBA For~Next文の使い方｜繰り返し処理の基本から実務パターンまで解説</a></p>



<h3 class="wp-block-heading"><span id="toc18">Option Explicitで変数宣言を強制する</span></h3>



<p>VBAには、宣言していない変数を使うとエラーにしてくれる便利な機能があります。それが <code>Option Explicit</code> です。</p>



<p>モジュールの先頭に次の1行を追加するだけで有効になります。</p>



<pre class="wp-block-code"><code>Option Explicit

Sub MySample()
    Dim userName As String
    userName = &quot;田中&quot;

    'userNameのスペルミス → コンパイルエラーで教えてくれる
    MsgBox userNme '← &quot;a&quot;が抜けているが、Option Explicitがあればエラーになる
End Sub</code></pre>



<p><code>Option Explicit</code> がない場合、<code>userNme</code> は新しい空の変数として自動作成されてしまいます。エラーにならないため、原因の特定に時間がかかるバグの温床になります。</p>



<p>VBEのオプション設定で「変数の宣言を強制する」にチェックを入れると、新しいモジュールに自動で <code>Option Explicit</code> が挿入されます。特別な理由がない限り、有効にしておくことを強くおすすめします。</p>



<p>Option Explicitの設定手順や実践的な使い方は、以下の記事で詳しく解説しています。</p>



<p><a href="https://mashukabu.com/excel-vba-option-explicit/">【VBA】Option Explicitで変数の宣言を強制する方法｜設定と使い方を解説</a></p>



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



<p>VBA変数の基本を振り返りましょう。</p>



<ul class="wp-block-list"><li><strong>変数とは</strong>: データを一時的に入れておく「名前付きの箱」</li><li><strong>宣言方法</strong>: <code>Dim 変数名 As データ型</code> で書く</li><li><strong>命名ルール</strong>: 英数字・日本語・アンダーバーのみ、先頭に数字は不可、255文字以内</li><li><strong>データ型</strong>: 文字は <code>String</code>、整数は <code>Long</code>、小数は <code>Double</code> が基本</li><li><strong>Variant型の注意</strong>: 便利だが、メモリ消費やバグの原因になりやすい</li><li><strong>Option Explicit</strong>: 変数宣言の強制を有効にしてバグを未然に防ぐ</li></ul>



<p>変数は最初のうちは面倒に感じるかもしれませんが、コードが増えるほど威力を発揮します。まずはよく使う値を変数に入れて使い回すことから始めてみてください。</p>



<p>VBAの基礎をもっと学びたい方は、以下の記事もあわせてご覧ください。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-vba-macro-difference/">Excel VBAとマクロの違い｜関係性と活用例を初心者向けに解説</a></li><li><a href="https://mashukabu.com/excel-vba-project-module-procedure/">VBAのプロジェクト・モジュール・プロシージャの違いと役割を解説</a></li><li><a href="https://mashukabu.com/excel-vba-conditional-branch-explanation/">VBA If文の使い方｜条件分岐を基本から実務コードまで解説</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-vba-variable-explanation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
