<?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%bc%95%e6%95%b0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Tue, 09 Jun 2026 01:45:49 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</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>VBAのFunctionプロシージャの使い方｜SubとFunctionの違いと戻り値の返し方</title>
		<link>https://mashukabu.com/excel-vba-howto-use-function/</link>
					<comments>https://mashukabu.com/excel-vba-howto-use-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Tue, 09 Jun 2026 01:45:49 +0000</pubDate>
				<category><![CDATA[VBA・マクロ]]></category>
		<category><![CDATA[Function]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[プロシージャ]]></category>
		<category><![CDATA[ユーザー定義関数]]></category>
		<category><![CDATA[引数]]></category>
		<category><![CDATA[戻り値]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=7886</guid>

					<description><![CDATA[VBAのFunctionプロシージャの使い方を初心者向けに解説。Subとの違い・戻り値の返し方・呼び出し方法から、引数のByVal/ByRef、複数の戻り値を返す設計パターン、On Errorによるエラー処理まで実務コード付きで紹介します。ExcelのLAMBDA関数との使い分けも整理しました。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">VBAで「Subは書けるようになったけれど、Functionプロシージャはいつ使うの？」と感じていませんか。</p>



<p class="wp-block-paragraph">SubとFunctionは見た目が似ていますが、役割がはっきり違います。この違いを理解すると、コードがぐっと整理しやすくなります。</p>



<p class="wp-block-paragraph">この記事では、Functionプロシージャの基本構文から戻り値の返し方、呼び出し方、SubとFunctionの使い分けまでを解説します。引数のByVal/ByRefの違いや、複数の値を返す設計パターン、エラー処理の組み込み方も実務コードで紹介します。最後にExcelのLAMBDA関数との使い分けも整理しました。</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">VBAのFunctionプロシージャとは？</a><ol><li><a href="#toc2" tabindex="0">SubとFunctionの違い</a></li></ol></li><li><a href="#toc3" tabindex="0">Functionプロシージャの基本構文と戻り値の返し方</a><ol><li><a href="#toc4" tabindex="0">実際に書いてみる</a></li><li><a href="#toc5" tabindex="0">VBEの起動とコードの準備</a></li><li><a href="#toc6" tabindex="0">戻り値の代入を忘れるとどうなるか</a></li></ol></li><li><a href="#toc7" tabindex="0">Functionプロシージャの呼び出し方</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">SubとFunctionの使い分け基準</a></li><li><a href="#toc11" tabindex="0">引数の渡し方｜ByValとByRefの違い</a><ol><li><a href="#toc12" tabindex="0">ByValとByRefの違い</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">パターン1: ByRef引数で複数の値を返す</a></li><li><a href="#toc17" tabindex="0">パターン2: 配列を返す</a></li><li><a href="#toc18" tabindex="0">パターン3: ユーザー定義型を返す</a></li></ol></li><li><a href="#toc19" tabindex="0">Functionプロシージャにエラー処理を組み込む（On Error）</a><ol><li><a href="#toc20" tabindex="0">基本のエラー処理パターン</a></li><li><a href="#toc21" tabindex="0">成否を呼び出し元に伝える</a></li></ol></li><li><a href="#toc22" tabindex="0">ユーザー定義関数（UDF）としてワークシートで使う</a><ol><li><a href="#toc23" tabindex="0">UDFの作り方と使い方</a></li><li><a href="#toc24" tabindex="0">UDFの制約に注意</a></li></ol></li><li><a href="#toc25" tabindex="0">VBA FunctionとExcelのLAMBDA関数の使い分け</a></li><li><a href="#toc26" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc27" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">VBAのFunctionプロシージャとは？</span></h2>



<p class="wp-block-paragraph">VBAのFunctionプロシージャは、処理を実行して<strong>結果（戻り値）を呼び出し元に返す</strong>ためのプロシージャです。</p>



<p class="wp-block-paragraph">一方、Subプロシージャは処理を実行するだけで、結果を返しません。この「結果を返せるかどうか」が両者の最大の違いです。</p>



<p class="wp-block-paragraph">たとえば「消費税を計算する」処理を考えてみましょう。計算した税込金額を呼び出し元で受け取って使いたいですよね。こういうときにFunctionが活躍します。</p>



<h3 class="wp-block-heading"><span id="toc2">SubとFunctionの違い</span></h3>



<p class="wp-block-paragraph">まずは両者の違いを表で整理します。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>Subプロシージャ</th><th>Functionプロシージャ</th></tr></thead><tbody><tr><td>役割</td><td>処理を実行する</td><td>処理を実行して結果を返す</td></tr><tr><td>戻り値</td><td>なし</td><td>あり</td></tr><tr><td>開始と終了</td><td><code>Sub ～ End Sub</code></td><td><code>Function ～ End Function</code></td></tr><tr><td>呼び出し方</td><td><code>名前 引数</code> または <code>Call 名前(引数)</code></td><td><code>変数 = 名前(引数)</code></td></tr><tr><td>主な用途</td><td>セルの書き込み・書式設定など</td><td>計算結果・判定結果を返す</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ざっくり言うと、<strong>「何かを実行したいだけならSub」「結果を受け取りたいならFunction」</strong>という使い分けになります。</p>



<p class="wp-block-paragraph">プロシージャの種類全体については「<a href="https://mashukabu.com/excel-vba-project-module-procedure/">VBAのプロジェクト・モジュール・プロシージャの違いと役割</a>」でも解説しています。VBAの構成要素を整理したい方はあわせてご覧ください。</p>



<h2 class="wp-block-heading"><span id="toc3">Functionプロシージャの基本構文と戻り値の返し方</span></h2>



<p class="wp-block-paragraph">Functionプロシージャの基本構文は次のとおりです。</p>



<pre class="wp-block-code"><code>Function 関数名(引数) As 戻り値の型
    '--- 処理を書く ---
    関数名 = 戻り値
End Function</code></pre>



<p class="wp-block-paragraph">ポイントは2つあります。</p>



<ul class="wp-block-list"><li><code>As 戻り値の型</code> で、返す値の型を指定する</li><li><strong><code>関数名 = 戻り値</code> の形で、関数名に結果を代入する</strong></li></ul>



<p class="wp-block-paragraph">この「関数名に値を代入する」のが、Functionで戻り値を返す方法です。Subにはない、Function特有の書き方です。</p>



<h3 class="wp-block-heading"><span id="toc4">実際に書いてみる</span></h3>



<p class="wp-block-paragraph">消費税の税込金額を計算するFunctionを作ってみましょう。</p>



<pre class="wp-block-code"><code>Function 税込計算(金額 As Long) As Double
    税込計算 = 金額 * 1.1
End Function</code></pre>



<p class="wp-block-paragraph"><code>As Double</code> で戻り値が小数も扱える数値型であることを指定しています。そして <code>税込計算 = 金額 * 1.1</code> で、計算結果を関数名に代入しています。これで税込金額が呼び出し元に返ります。</p>



<p class="wp-block-paragraph">税率1.1を掛けると小数が出ることがあるため、戻り値の型は整数型（Long）ではなく、小数を扱えるDouble型にしておくのが安全です。整数型で受け取ると小数部分が丸められ、金額がずれてしまう場合があります。</p>



<p class="wp-block-paragraph">ここからは実際にコピペして動かせるコードを紹介していきます。VBE（Visual Basic Editor）を開いて、標準モジュールに貼り付けてみてください。</p>



<h3 class="wp-block-heading"><span id="toc5">VBEの起動とコードの準備</span></h3>



<p class="wp-block-paragraph">VBEはExcelからすぐに開けます。起動方法は次のとおりです。</p>



<ul class="wp-block-list"><li><strong>ショートカットキー</strong>: Alt + F11 を押す（最も手軽）</li><li><strong>リボンから</strong>: 「開発」タブ →「Visual Basic」をクリック</li></ul>



<p class="wp-block-paragraph">「開発」タブが表示されていない場合は、次の手順で追加できます。</p>



<ol class="wp-block-list"><li>「ファイル」→「オプション」を開く</li><li>「リボンのユーザー設定」を選択</li><li>右側の一覧で「開発」にチェックを入れて「OK」</li></ol>



<p class="wp-block-paragraph">VBEが開いたら、「挿入」メニュー →「標準モジュール」を選択してください。コードの貼り付け先ができます。</p>



<h3 class="wp-block-heading"><span id="toc6">戻り値の代入を忘れるとどうなるか</span></h3>



<p class="wp-block-paragraph">注意点として、<code>関数名 = 戻り値</code> の代入を忘れると、戻り値はその型の既定値になります。数値型なら0、文字列型なら空文字が返ってしまいます。</p>



<pre class="wp-block-code"><code>Function 税込計算(金額 As Long) As Double
    '--- 代入を忘れた例。戻り値は常に0になる ---
    Dim 結果 As Double '計算結果を入れる変数
    結果 = 金額 * 1.1
End Function</code></pre>



<p class="wp-block-paragraph">この例では <code>結果</code> という変数に計算しただけで、関数名 <code>税込計算</code> に代入していません。そのため戻り値は0のままです。エラーは出ないので、原因に気づきにくいミスです。戻り値は必ず関数名に代入しましょう。</p>



<h2 class="wp-block-heading"><span id="toc7">Functionプロシージャの呼び出し方</span></h2>



<p class="wp-block-paragraph">作ったFunctionは、別のプロシージャから呼び出して使います。呼び出し方には2通りあります。</p>



<h3 class="wp-block-heading"><span id="toc8">戻り値を受け取る呼び出し方</span></h3>



<p class="wp-block-paragraph">戻り値を変数で受け取るときは、<strong>カッコを付けて <code>変数 = 関数名(引数)</code></strong> と書きます。</p>



<pre class="wp-block-code"><code>Sub テスト()
    Dim 結果 As Double '税込金額を受け取る変数
    結果 = 税込計算(1000) '戻り値は1100になる
    MsgBox &quot;税込金額は &quot; &amp; 結果 &amp; &quot; 円です&quot;
End Sub</code></pre>



<p class="wp-block-paragraph"><code>税込計算(1000)</code> の戻り値1100が、変数 <code>結果</code> に代入されます。これがFunctionの最も基本的な使い方です。</p>



<h3 class="wp-block-heading"><span id="toc9">戻り値を使わずに呼び出す方法</span></h3>



<p class="wp-block-paragraph">戻り値を使わずに、Subのように実行だけしたい場合は、カッコなしで <code>関数名 引数</code> と書くか、<code>Call 関数名(引数)</code> と書きます。</p>



<pre class="wp-block-code"><code>Sub テスト2()
    税込計算 1000 '戻り値は捨てられる
End Sub</code></pre>



<p class="wp-block-paragraph">このとき戻り値1100は受け取られず、捨てられます。Functionは戻り値を受け取らない使い方もできますが、それならSubで書くほうが自然です。</p>



<p class="wp-block-paragraph">カッコの使い方には注意が必要です。<strong>戻り値を受け取るときはカッコを付ける、実行だけならカッコを付けない</strong>と覚えておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc10">SubとFunctionの使い分け基準</span></h2>



<p class="wp-block-paragraph">「どちらで書けばいいか迷う」という方のために、使い分けの基準を整理します。</p>



<p class="wp-block-paragraph">判断の軸はシンプルです。<strong>「呼び出し元で結果を受け取って使うか」</strong>で決めます。</p>



<ul class="wp-block-list"><li><strong>結果を受け取って使う</strong> → Function（計算結果・判定結果・変換結果など）</li><li><strong>実行するだけで結果は要らない</strong> → Sub（セルへの書き込み・書式設定・並べ替えなど）</li></ul>



<p class="wp-block-paragraph">具体例で見てみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>やりたいこと</th><th>適したプロシージャ</th><th>理由</th></tr></thead><tbody><tr><td>税込金額を計算して受け取る</td><td>Function</td><td>計算結果を呼び出し元で使う</td></tr><tr><td>セルA1に値を書き込む</td><td>Sub</td><td>実行するだけで戻り値は不要</td></tr><tr><td>文字列が有効なメールアドレスか判定する</td><td>Function</td><td>True/Falseの判定結果を返す</td></tr><tr><td>シート全体を並べ替える</td><td>Sub</td><td>並べ替えを実行するだけ</td></tr><tr><td>2つの日付の営業日数を計算する</td><td>Function</td><td>日数を計算して返す</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">迷ったときは「この処理の結果を、別の場所で使うか」を自問してみてください。使うならFunctionです。</p>



<h2 class="wp-block-heading"><span id="toc11">引数の渡し方｜ByValとByRefの違い</span></h2>



<p class="wp-block-paragraph">Functionに値を渡す「引数」には、2つの渡し方があります。ByVal（値渡し）とByRef（参照渡し）です。</p>



<p class="wp-block-paragraph">この違いを知らないと、思わぬバグに悩まされることがあります。しっかり押さえておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc12">ByValとByRefの違い</span></h3>



<p class="wp-block-paragraph">両者の違いは「呼び出し元の変数そのものを渡すか、コピーを渡すか」です。</p>



<figure class="wp-block-table"><table><thead><tr><th>渡し方</th><th>渡すもの</th><th>Function内で変更すると</th><th>既定値</th></tr></thead><tbody><tr><td>ByVal（値渡し）</td><td>変数のコピー</td><td>呼び出し元は変わらない</td><td>いいえ</td></tr><tr><td>ByRef（参照渡し）</td><td>変数そのもの</td><td>呼び出し元も変わる</td><td>はい</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">VBAでは引数の指定を省略すると、自動的にByRef（参照渡し）になります。この点が事故のもとになりやすいので注意が必要です。</p>



<h3 class="wp-block-heading"><span id="toc13">実際の動作を比べる</span></h3>



<p class="wp-block-paragraph">次のコードで、ByValとByRefの違いを確認してみましょう。</p>



<pre class="wp-block-code"><code>Function ByVal版(ByVal n As Long) As Long
    n = n + 100 '引数を変更する
    ByVal版 = n
End Function

Function ByRef版(ByRef n As Long) As Long
    n = n + 100 '引数を変更する
    ByRef版 = n
End Function

Sub 比較テスト()
    Dim x As Long '元の値を入れる変数
    x = 10
    MsgBox ByVal版(x) &amp; &quot; / 元の値: &quot; &amp; x '結果は「110 / 元の値: 10」
    x = 10
    MsgBox ByRef版(x) &amp; &quot; / 元の値: &quot; &amp; x '結果は「110 / 元の値: 110」
End Sub</code></pre>



<p class="wp-block-paragraph">ByVal版では、呼び出し元の <code>x</code> は10のまま変わりません。コピーを渡しているからです。一方、ByRef版では <code>x</code> が110に書き換わってしまいます。変数そのものを渡しているためです。</p>



<h3 class="wp-block-heading"><span id="toc14">安全のためのおすすめ</span></h3>



<p class="wp-block-paragraph">意図せず呼び出し元の変数を書き換える事故を防ぐには、<strong>変更する必要のない引数にはByValを明示する</strong>のがおすすめです。</p>



<pre class="wp-block-code"><code>Function 税込計算(ByVal 金額 As Long) As Double
    税込計算 = 金額 * 1.1
End Function</code></pre>



<p class="wp-block-paragraph">こうしておけば、Function内で <code>金額</code> をうっかり変更しても、呼び出し元には影響しません。コードの安全性が高まります。なお戻り値の型は、先ほどと同じく小数を扱えるDouble型にしている点もあわせて確認してください。</p>



<h2 class="wp-block-heading"><span id="toc15">複数の戻り値が必要なときの設計パターン</span></h2>



<p class="wp-block-paragraph">Functionの戻り値は1つだけです。しかし実務では「計算結果と一緒に、成否や付随情報も返したい」という場面があります。そんなときの設計パターンを3つ紹介します。</p>



<h3 class="wp-block-heading"><span id="toc16">パターン1: ByRef引数で複数の値を返す</span></h3>



<p class="wp-block-paragraph">ByRefの「呼び出し元の変数を書き換える」性質を逆手に取る方法です。返したい値の数だけByRef引数を用意します。</p>



<pre class="wp-block-code"><code>Function 割り算(ByVal a As Long, ByVal b As Long, ByRef 余り As Long) As Long
    割り算 = a  b '商を戻り値で返す
    余り = a Mod b '余りはByRef引数で返す
End Function

Sub パターン1テスト()
    Dim あまり As Long '余りを受け取る変数
    Dim 商 As Long '商を受け取る変数
    商 = 割り算(17, 5, あまり)
    MsgBox &quot;商は &quot; &amp; 商 &amp; &quot;、余りは &quot; &amp; あまり '結果は「商は3、余りは2」
End Sub</code></pre>



<p class="wp-block-paragraph">主たる結果（商）は戻り値で、付随する結果（余り）はByRef引数で返しています。読みやすく、実務でよく使うパターンです。</p>



<h3 class="wp-block-heading"><span id="toc17">パターン2: 配列を返す</span></h3>



<p class="wp-block-paragraph">複数の値をまとめて返したいときは、配列を戻り値にする方法があります。戻り値の型をVariantにします。</p>



<pre class="wp-block-code"><code>Function 最小最大(ByVal 範囲 As Range) As Variant
    Dim 結果(1) As Long '0番目に最小、1番目に最大を入れる
    結果(0) = WorksheetFunction.Min(範囲)
    結果(1) = WorksheetFunction.Max(範囲)
    最小最大 = 結果
End Function

Sub パターン2テスト()
    Dim v As Variant '配列を受け取る変数
    v = 最小最大(Range(&quot;A1:A10&quot;))
    MsgBox &quot;最小 &quot; &amp; v(0) &amp; &quot; / 最大 &quot; &amp; v(1)
End Sub</code></pre>



<p class="wp-block-paragraph">関連する複数の値（最小と最大など）をセットで返したいときに向いています。</p>



<h3 class="wp-block-heading"><span id="toc18">パターン3: ユーザー定義型を返す</span></h3>



<p class="wp-block-paragraph">「名前・点数・判定」のような構造化したデータをまとめて返したいときは、ユーザー定義型（Type）を使います。</p>



<pre class="wp-block-code"><code>Type 成績データ
    名前 As String
    点数 As Long
    判定 As String
End Type

Function 成績作成(ByVal nm As String, ByVal pt As Long) As 成績データ
    Dim d As 成績データ '組み立て用の変数
    d.名前 = nm
    d.点数 = pt
    If pt &gt;= 60 Then d.判定 = &quot;合格&quot; Else d.判定 = &quot;不合格&quot;
    成績作成 = d
End Function</code></pre>



<p class="wp-block-paragraph">少し高度ですが、関連する複数の項目を意味のあるまとまりとして返せます。データの中身が増えても引数を増やさずに済むのが利点です。</p>



<h2 class="wp-block-heading"><span id="toc19">Functionプロシージャにエラー処理を組み込む（On Error）</span></h2>



<p class="wp-block-paragraph">Functionの中で予期しないエラーが起きると、処理が止まってしまいます。これを防ぐのが <code>On Error</code> によるエラーハンドリングです。</p>



<h3 class="wp-block-heading"><span id="toc20">基本のエラー処理パターン</span></h3>



<p class="wp-block-paragraph"><code>On Error GoTo ラベル</code> を使うと、エラー発生時に指定したラベルへジャンプできます。</p>



<pre class="wp-block-code"><code>Function 安全な割り算(ByVal a As Double, ByVal b As Double) As Double
    On Error GoTo エラー処理
    安全な割り算 = a / b '0で割るとエラーになる
    Exit Function '正常時はここで終了する
エラー処理:
    安全な割り算 = 0 'エラー時は0を返す
End Function</code></pre>



<p class="wp-block-paragraph">このコードのポイントは2つです。</p>



<ul class="wp-block-list"><li><strong><code>Exit Function</code></strong> で正常処理を終え、エラー処理部分に入らないようにする</li><li>エラーが起きたら <code>エラー処理</code> ラベルへジャンプし、戻り値に0を設定する</li></ul>



<p class="wp-block-paragraph"><code>Exit Function</code> を書き忘れると、正常時でもエラー処理のコードが実行されてしまいます。必ず正常系の最後に入れましょう。</p>



<h3 class="wp-block-heading"><span id="toc21">成否を呼び出し元に伝える</span></h3>



<p class="wp-block-paragraph">戻り値で「成功か失敗か」を伝える設計も実務で役立ちます。Boolean型を返し、ByRef引数で計算結果を渡すパターンです。</p>



<pre class="wp-block-code"><code>Function 数値変換(ByVal 文字 As String, ByRef 結果 As Double) As Boolean
    On Error GoTo エラー処理
    結果 = CDbl(文字) '数値に変換する
    数値変換 = True '成功
    Exit Function
エラー処理:
    数値変換 = False '失敗
End Function</code></pre>



<p class="wp-block-paragraph">呼び出し元では、戻り値のTrue/Falseで成否を判定し、成功時だけ結果を使えます。エラー処理の考え方は<a href="https://mashukabu.com/excel-vba-conditional-branch-explanation/">VBAのIf文（条件分岐）</a>とあわせて学ぶと理解が深まります。</p>



<h2 class="wp-block-heading"><span id="toc22">ユーザー定義関数（UDF）としてワークシートで使う</span></h2>



<p class="wp-block-paragraph">標準モジュールに作ったFunctionは、ワークシートのセルからも呼び出せます。これを<strong>ユーザー定義関数（UDF: User Defined Function）</strong>といいます。</p>



<p class="wp-block-paragraph">SUM関数やIF関数のように、自分だけのオリジナル関数をセルで使えるようになります。</p>



<h3 class="wp-block-heading"><span id="toc23">UDFの作り方と使い方</span></h3>



<p class="wp-block-paragraph">先ほどの税込計算をUDFとして使ってみましょう。標準モジュールに次のFunctionを書きます。</p>



<pre class="wp-block-code"><code>Function 税込(ByVal 金額 As Double) As Double
    税込 = 金額 * 1.1
End Function</code></pre>



<p class="wp-block-paragraph">あとはワークシートのセルに <code>=税込(A1)</code> と入力するだけです。A1の金額に対する税込金額が表示されます。SUM関数と同じ感覚で使えます。</p>



<h3 class="wp-block-heading"><span id="toc24">UDFの制約に注意</span></h3>



<p class="wp-block-paragraph">UDFには重要な制約があります。<strong>セルの値の取得や計算はできますが、セルへの書き込みや書式設定はできません。</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>UDFでできること</th><th>UDFでできないこと</th></tr></thead><tbody><tr><td>セルの値を読み取る</td><td>他のセルに値を書き込む</td></tr><tr><td>計算して結果を返す</td><td>セルの色や書式を変える</td></tr><tr><td>文字列を加工して返す</td><td>シートの並べ替えを実行する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">セルを操作したい場合はSubプロシージャを使います。UDFはあくまで「値を計算して返すだけ」と覚えておきましょう。</p>



<p class="wp-block-paragraph">なお、Privateで宣言したFunctionはワークシートから呼び出せません。UDFにしたいFunctionは <code>Function</code> または <code>Public Function</code> で宣言してください。UDFを使うブックは、必ずマクロ有効ブック（.xlsm）で保存しましょう。</p>



<h2 class="wp-block-heading"><span id="toc25">VBA FunctionとExcelのLAMBDA関数の使い分け</span></h2>



<p class="wp-block-paragraph">Excel 2021やMicrosoft 365では、VBAを使わずにワークシートの数式だけでカスタム関数を作れる<a href="https://mashukabu.com/excel-let-lambda-function-guide/">LAMBDA関数</a>が登場しました。</p>



<p class="wp-block-paragraph">「カスタム関数を作るなら、VBAとLAMBDAのどちらを選ぶべきか」は多くの方が悩む点です。実務観点で比較します。</p>



<figure class="wp-block-table"><table><thead><tr><th>観点</th><th>VBA Functionプロシージャ</th><th>LAMBDA関数</th></tr></thead><tbody><tr><td>作成手段</td><td>VBAコード（VBE）</td><td>数式のみ</td></tr><tr><td>保存形式</td><td>xlsm（マクロ有効ブック）</td><td>xlsx</td></tr><tr><td>セキュリティ警告</td><td>出る</td><td>出ない</td></tr><tr><td>対応バージョン</td><td>VBA対応のExcel全般</td><td>Microsoft 365のみ</td></tr><tr><td>可能な処理</td><td>ファイル操作・API呼出・複雑な制御も可</td><td>数式で書ける範囲</td></tr><tr><td>学習コスト</td><td>VBA文法を学ぶ必要あり</td><td>Excelの数式知識のみ</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">判断基準を実務シーン別に整理すると次のようになります。</p>



<ul class="wp-block-list"><li><strong>数式で書ける計算（税込・営業日・評価判定など）</strong> → LAMBDA</li><li><strong>xlsxのまま配布したい・マクロ警告を避けたい</strong> → LAMBDA</li><li><strong>Excel 2019以前の旧バージョンユーザーがいる</strong> → VBA Function</li><li><strong>ファイル操作・正規表現・外部API呼び出しが必要</strong> → VBA Function</li></ul>



<p class="wp-block-paragraph">おすすめのアプローチは「まずLAMBDAで実装してみて、数式ではできない処理だけVBA Functionに移す」という考え方です。LAMBDA関数の詳しい使い方は「<a href="https://mashukabu.com/excel-let-lambda-function-guide/">ExcelのLET・LAMBDA関数の使い方</a>」で解説しています。</p>



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



<p class="wp-block-paragraph">Functionプロシージャでつまずきやすいエラーと対処法をまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー・症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>戻り値が常に0や空文字になる</td><td>関数名への代入忘れ</td><td><code>関数名 = 値</code> の代入を必ず書く</td></tr><tr><td>戻り値が反映されない</td><td>関数名と別の変数に代入している</td><td>代入先を関数名に修正する</td></tr><tr><td>型が一致しませんエラー</td><td>戻り値の型と受け取る変数の型が違う</td><td>型を揃えるか型変換関数を使う</td></tr><tr><td>呼び出し時にコンパイルエラー</td><td>戻り値を受け取るのにカッコがない</td><td><code>変数 = 関数名(引数)</code> と書く</td></tr><tr><td>呼び出し元の変数が勝手に変わる</td><td>ByRefで引数を渡している</td><td>変更不要な引数はByValを明示する</td></tr><tr><td>UDFがセルで動かない（無反応）</td><td>UDF内でセル操作をしている</td><td>UDFは値を返すだけにする</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">マクロを保存するときはファイル形式に注意してください。<strong>「Excelマクロ有効ブック（.xlsm）」</strong>を選びましょう。通常の .xlsx で保存すると、書いたマクロが消えてしまいます。</p>



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



<p class="wp-block-paragraph">この記事では、VBAのFunctionプロシージャについて基本から実務活用まで解説しました。</p>



<p class="wp-block-paragraph">ポイントをおさらいしておきましょう。</p>



<ul class="wp-block-list"><li>Functionは <strong>処理を実行して戻り値を返す</strong> プロシージャ。Subは戻り値を返さない</li><li>戻り値は <strong><code>関数名 = 値</code></strong> の形で代入する。代入忘れに注意</li><li>呼び出しは <strong>戻り値を受け取るときカッコあり、実行だけならカッコなし</strong></li><li><strong>結果を受け取って使うならFunction、実行だけならSub</strong> で使い分ける</li><li>引数は <strong>変更不要ならByValを明示</strong> して事故を防ぐ</li><li>複数の値を返すには <strong>ByRef引数・配列・ユーザー定義型</strong> の3パターン</li><li>エラー処理は <strong>On Error GoTo + Exit Function</strong> で正常系と分離する</li><li>標準モジュールのFunctionは <strong>UDF</strong> としてセルでも使える（値を返すだけ）</li></ul>



<p class="wp-block-paragraph">まずはこの記事のサンプルコードをコピーして動かしてみてください。自分で書いて動かすと、SubとFunctionの違いがすっと腑に落ちますよ。</p>



<p class="wp-block-paragraph">Functionの基礎を理解したら、次は<a href="https://mashukabu.com/excel-vba-project-module-procedure/">VBAのプロジェクト・モジュール・プロシージャの違い</a>でコードの整理術を学んでみましょう。条件分岐の<a href="https://mashukabu.com/excel-vba-conditional-branch-explanation/">VBAのIf文</a>や<a href="https://mashukabu.com/excel-vba-howto-use-select-case/">Select Case文</a>とあわせて使えば、より実践的なマクロが書けるようになります。数式でカスタム関数を作りたい方は<a href="https://mashukabu.com/excel-let-lambda-function-guide/">ExcelのLET・LAMBDA関数の使い方</a>もあわせてご覧ください。VBA学習全体の進め方は<a href="https://mashukabu.com/excel-vba-learning-roadmap/">VBA学習の順番とロードマップ</a>を参考にしてみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-vba-howto-use-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Excel関数とは？仕組み・入力方法・初心者がまず覚える関数を解説</title>
		<link>https://mashukabu.com/excel-function/</link>
					<comments>https://mashukabu.com/excel-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 05 Feb 2022 15:04:13 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel初心者]]></category>
		<category><![CDATA[SUM]]></category>
		<category><![CDATA[VLOOKUP]]></category>
		<category><![CDATA[オートSUM]]></category>
		<category><![CDATA[引数]]></category>
		<category><![CDATA[関数とは]]></category>
		<category><![CDATA[関数の入力方法]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=958</guid>

					<description><![CDATA[Excel関数とは何かを初心者向けにやさしく解説します。関数の仕組み・引数の意味・3つの入力方法に加え、SUM・IF・VLOOKUPなど最初に覚えたい関数や、よくあるエラーの対処法、FAQまで網羅。この記事を読めば関数の基本が一通りわかりますよ。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Excelで関数を使えるようになりたいけれど、そもそも関数って何だろう。こんな疑問を持っている方は、意外と多いのではないでしょうか。</p>



<p class="wp-block-paragraph">関数の意味がわからないまま操作していると、計算ミスに気づけなかったり、作業効率がなかなか上がらなかったりします。最初に基本を押さえておくと、その後の習得がぐっとスムーズになりますよ。</p>



<p class="wp-block-paragraph">この記事では、Excel関数とは何かという基本から、引数の意味、入力方法、まず覚えたい関数までをまとめて解説します。読み終えるころには、関数への苦手意識がだいぶ減っているはずです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>この記事は次のような人におすすめ</strong></p><p>&#8211; Excelの関数が何なのか、よくわかっていない人<br>&#8211; 関数の入力方法を知りたい人<br>&#8211; まず覚えるべき関数が何か知りたい人</p></blockquote>



<p class="wp-block-paragraph"><strong>対象環境</strong>: Microsoft Excel 2016以降 / Microsoft 365（Windows・Mac共通）</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">Excel関数とは</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></li><li><a href="#toc5" tabindex="0">Excel関数の入力方法【3つ】</a><ol><li><a href="#toc6" tabindex="0">方法1: セルに直接入力する（一番速い）</a></li><li><a href="#toc7" tabindex="0">方法2: 関数の挿入ダイアログを使う（関数名がわからないとき）</a></li><li><a href="#toc8" tabindex="0">方法3: オートSUMを使う（合計・平均をワンクリック）</a></li></ol></li><li><a href="#toc9" tabindex="0">初心者がまず覚えておきたいExcel関数</a><ol><li><a href="#toc10" tabindex="0">SUM関数（合計）</a></li><li><a href="#toc11" tabindex="0">AVERAGE関数（平均）/ COUNT関数（個数）</a></li><li><a href="#toc12" tabindex="0">IF関数（条件分岐）</a></li><li><a href="#toc13" tabindex="0">VLOOKUP関数（表からデータを検索）</a></li><li><a href="#toc14" tabindex="0">COUNTIF・IFERROR（次のステップ）</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></ol></li><li><a href="#toc18" tabindex="0">関数入力でよくあるミスと対処法</a><ol><li><a href="#toc19" tabindex="0">エラー値が表示されたときは</a></li></ol></li><li><a href="#toc20" tabindex="0">関数を効率よく覚えるコツ</a><ol><li><a href="#toc21" tabindex="0">よく使う関数から覚える</a></li><li><a href="#toc22" tabindex="0">実際に手を動かす</a></li><li><a href="#toc23" tabindex="0">どんな関数があるか、ざっくり把握しておく</a></li></ol></li><li><a href="#toc24" tabindex="0">よくある質問（FAQ）</a></li><li><a href="#toc25" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Excel関数とは</span></h2>



<p class="wp-block-paragraph">Excel関数とは、あらかじめ用意されている計算の仕組みのことです。「この範囲を合計して」「条件に合うデータを数えて」といった処理を、短い数式で実行できます。</p>



<p class="wp-block-paragraph">たとえば、セルA1からA10までの数値を合計したいとします。手作業で「=A1+A2+A3+…」と書くのは大変ですよね。SUM関数を使えば、次のように書くだけで済みます。</p>



<pre class="wp-block-code"><code>=SUM(A1:A10)</code></pre>



<p class="wp-block-paragraph">Excelには数百種類もの関数が用意されています。ただし、すべてを覚える必要はありません。実務でよく使うのは20〜30種類ほどです。まずは基本的なものから覚えていけば大丈夫ですよ。</p>



<h3 class="wp-block-heading"><span id="toc2">関数の基本的な形式</span></h3>



<p class="wp-block-paragraph">どの関数も、次の形で入力します。</p>



<pre class="wp-block-code"><code>=関数名(引数1, 引数2, …)</code></pre>



<p class="wp-block-paragraph">この形式さえ覚えておけば、どんな関数でも同じ感覚で使えます。各要素の役割は次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>要素</th><th>役割</th><th>例</th></tr></thead><tbody><tr><td>=（イコール）</td><td>「これは数式です」とExcelに伝える記号</td><td>=</td></tr><tr><td>関数名</td><td>使いたい計算の種類を指定する</td><td>SUM, IF, VLOOKUP</td></tr><tr><td>()（カッコ）</td><td>引数を囲む</td><td>(A1:A10)</td></tr><tr><td>引数（ひきすう）</td><td>計算に使うデータを指定する</td><td>A1:A10</td></tr><tr><td>,（カンマ）</td><td>引数どうしを区切る記号</td><td>A1, B1</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">なお、引数を取らない関数もあります。たとえば今日の日付を返すTODAY関数は <code>=TODAY()</code> のようにカッコの中が空です。それでもカッコ自体は省略できないので注意してくださいね。</p>



<h3 class="wp-block-heading"><span id="toc3">引数（ひきすう）とは</span></h3>



<p class="wp-block-paragraph">引数とは、関数に「何を計算するか」を教えるための情報です。読み方は「ひきすう」で、プログラミングでも使われる用語です。</p>



<p class="wp-block-paragraph">引数の数や種類は、関数によって異なります。たとえばSUM関数とIF関数では、引数の使い方がまったく違います。</p>



<pre class="wp-block-code"><code>=SUM(A1:A10)</code></pre>



<p class="wp-block-paragraph">SUM関数の引数は「合計する範囲」です。ここではA1からA10までのセルを合計します。</p>



<pre class="wp-block-code"><code>=IF(A1&gt;=80, &quot;合格&quot;, &quot;不合格&quot;)</code></pre>



<p class="wp-block-paragraph">IF関数の引数は3つです。それぞれの意味は次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数の順番</th><th>意味</th><th>上の例での値</th></tr></thead><tbody><tr><td>第1引数</td><td>条件</td><td>A1>=80（A1が80以上か）</td></tr><tr><td>第2引数</td><td>条件に合うときの値</td><td>&#8220;合格&#8221;</td></tr><tr><td>第3引数</td><td>条件に合わないときの値</td><td>&#8220;不合格&#8221;</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数には「必須引数」と「省略できる引数」があります。省略できる引数は、構文の説明で <code>[ ]</code>（角カッコ）で囲んで表記されることが多いです。たとえばIF関数の第3引数は省略でき、省略すると条件に合わないときにFALSEが返ります。</p>



<p class="wp-block-paragraph">引数の内容を暗記する必要はありません。関数を入力するとき、Excelが引数のヒントを表示してくれるので、それを見ながら入力すれば大丈夫ですよ。</p>



<h2 class="wp-block-heading"><span id="toc4">関数と数式の違い</span></h2>



<p class="wp-block-paragraph">初心者がつまずきやすいのが、「数式」と「関数」の違いです。この2つは似ているようで、指す範囲が異なります。</p>



<p class="wp-block-paragraph"><strong>数式</strong>とは、<code>=</code> で始まる計算式全般のことです。たとえば <code>=A1+B1</code> や <code>=A1*1.1</code> も立派な数式です。</p>



<p class="wp-block-paragraph"><strong>関数</strong>とは、その数式の中で使う、あらかじめ用意された便利な機能のことです。SUMやIFなどが関数にあたります。</p>



<pre class="wp-block-code"><code>=A1+A2+A3      ← 数式（関数を使っていない）
=SUM(A1:A3)    ← 数式（SUM関数を使っている）</code></pre>



<p class="wp-block-paragraph">つまり「関数は数式の一部」と考えるとわかりやすいです。すべての関数は数式ですが、すべての数式が関数を使っているわけではありません。この感覚をつかんでおくと、エラーの原因も見つけやすくなりますよ。</p>



<h2 class="wp-block-heading"><span id="toc5">Excel関数の入力方法【3つ】</span></h2>



<p class="wp-block-paragraph">関数をセルに入力する方法は、大きく3つあります。それぞれの特徴を知っておくと、場面に合わせて使い分けられますよ。</p>



<h3 class="wp-block-heading"><span id="toc6">方法1: セルに直接入力する（一番速い）</span></h3>



<p class="wp-block-paragraph">もっとも効率が良いのは、セルに直接関数を入力する方法です。</p>



<p class="wp-block-paragraph"><strong>手順:</strong></p>



<ol class="wp-block-list"><li>関数を入力したいセルをクリックする</li><li>半角で <code>=</code> を入力する</li><li>関数名を入力し始める（例: <code>su</code> と入力）</li><li>候補リストが表示されるので、使いたい関数をダブルクリックする</li><li>引数を入力する（セル範囲はマウスでドラッグしても指定できる）</li><li>Enterキーを押して確定する</li></ol>



<p class="wp-block-paragraph">関数名は最初の2〜3文字を入力するだけで候補が表示されます。正確なスペルを覚えていなくても問題ありません。引数を入力している間も、Excelがヒントを出してくれるので安心です。</p>



<p class="wp-block-paragraph">この方法は慣れると速いので、最終的にはこちらをメインで使うのがおすすめですよ。</p>



<h3 class="wp-block-heading"><span id="toc7">方法2: 関数の挿入ダイアログを使う（関数名がわからないとき）</span></h3>



<p class="wp-block-paragraph">使いたい関数名がわからないときに便利なのが「関数の挿入」ダイアログです。</p>



<p class="wp-block-paragraph"><strong>手順:</strong></p>



<ol class="wp-block-list"><li>関数を入力したいセルをクリックする</li><li>数式バーの左にある「fx」ボタンをクリックする（または「数式」タブ →「関数の挿入」）</li><li>「関数の検索」にやりたいことを入力する（例:「合計」）</li><li>表示された関数の一覧から、使いたい関数を選んでOKをクリックする</li><li>引数の入力画面が表示されるので、説明を見ながら引数を入力する</li><li>OKをクリックして確定する</li></ol>



<p class="wp-block-paragraph">この方法は入力に少し手間がかかります。その代わり、引数の説明が画面に表示されるので、初心者でも安心して使えます。関数名がわからないときは、まずこの方法で検索してみてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc8">方法3: オートSUMを使う（合計・平均をワンクリック）</span></h3>



<p class="wp-block-paragraph">合計や平均など、よく使う集計はもっと手軽に入力できます。それが「オートSUM」です。</p>



<p class="wp-block-paragraph">「ホーム」タブの右側、または「数式」タブに「オートSUM（Σ）」ボタンがあります。これをクリックすると、SUM関数が自動で入力されます。Excelが合計する範囲を推測してくれるので、範囲が正しければEnterを押すだけで完了です。</p>



<p class="wp-block-paragraph">オートSUMボタンの右側にある「▼」を押してみてください。平均（AVERAGE）・数値の個数（COUNT）・最大値（MAX）・最小値（MIN）も選べます。<code>Alt</code> + <code>Shift</code> + <code>=</code> のショートカットでも呼び出せるので、覚えておくと便利ですよ。</p>



<h2 class="wp-block-heading"><span id="toc9">初心者がまず覚えておきたいExcel関数</span></h2>



<p class="wp-block-paragraph">数百種類もある関数ですが、まずは次の関数を覚えれば、実務の多くの場面に対応できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数名</th><th>機能</th><th>入力例</th><th>結果の例</th></tr></thead><tbody><tr><td>SUM</td><td>合計を求める</td><td>=SUM(A1:A10)</td><td>数値の合計値</td></tr><tr><td>AVERAGE</td><td>平均を求める</td><td>=AVERAGE(B1:B10)</td><td>数値の平均値</td></tr><tr><td>COUNT</td><td>数値の個数を数える</td><td>=COUNT(C1:C10)</td><td>数値が入ったセルの数</td></tr><tr><td>IF</td><td>条件で結果を変える</td><td>=IF(D1>=80,&#8221;合格&#8221;,&#8221;不合格&#8221;)</td><td>合格 または 不合格</td></tr><tr><td>VLOOKUP</td><td>表からデータを検索する</td><td>=VLOOKUP(E1,A:B,2,FALSE)</td><td>検索結果の値</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ここからは、それぞれの関数を少しだけ詳しく見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc10">SUM関数（合計）</span></h3>



<p class="wp-block-paragraph">SUM関数は、指定した範囲の数値を合計する関数です。もっとも使う機会が多い関数といえます。</p>



<pre class="wp-block-code"><code>=SUM(A1:A10)</code></pre>



<p class="wp-block-paragraph">範囲（A1:A10）だけでなく、<code>=SUM(A1, B1, C1)</code> のように個別のセルをカンマで区切って指定することもできます。文字列や空白セルは自動でスキップしてくれるので、多少データが混ざっていても安心です。詳しい使い方は<a href="https://mashukabu.com/excel-function-howto-use-sum/">SUM関数の使い方</a>で解説しています。</p>



<h3 class="wp-block-heading"><span id="toc11">AVERAGE関数（平均）/ COUNT関数（個数）</span></h3>



<p class="wp-block-paragraph">AVERAGE関数は数値の平均を、COUNT関数は数値が入ったセルの個数を求めます。</p>



<pre class="wp-block-code"><code>=AVERAGE(B1:B10)
=COUNT(C1:C10)</code></pre>



<p class="wp-block-paragraph">AVERAGE関数には1つ注意点があります。空白セルは計算から無視されますが、<code>0</code> が入力されたセルは計算に含まれてしまうのです。平均が思ったより低いときは、0が混ざっていないか確認してみてください。詳しくは<a href="https://mashukabu.com/excel-function-howto-use-average/">AVERAGE関数の使い方</a>と<a href="https://mashukabu.com/excel-function-howto-use-count/">COUNT関数の使い方</a>をご覧くださいね。</p>



<h3 class="wp-block-heading"><span id="toc12">IF関数（条件分岐）</span></h3>



<p class="wp-block-paragraph">IF関数は、条件によって結果を変える関数です。「点数が80以上なら合格、そうでなければ不合格」といった処理ができます。</p>



<pre class="wp-block-code"><code>=IF(D1&gt;=80, &quot;合格&quot;, &quot;不合格&quot;)</code></pre>



<p class="wp-block-paragraph">引数は3つで、第1引数の「条件」が必須です。文字列を返すときは、<code>"合格"</code> のように引用符（&#8221;）で囲む点に注意してください。条件分岐の幅が広い便利な関数なので、ぜひ<a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数の使い方</a>で詳しく学んでみてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc13">VLOOKUP関数（表からデータを検索）</span></h3>



<p class="wp-block-paragraph">VLOOKUP関数は、表の中から条件に合うデータを探し出す関数です。商品コードから商品名を引っ張ってくる、といった作業で活躍します。</p>



<pre class="wp-block-code"><code>=VLOOKUP(E1, A:B, 2, FALSE)</code></pre>



<p class="wp-block-paragraph">引数は4つで、最後の「検索の型」だけ省略できます。完全に一致するものを探すときはFALSE、おおよそ一致でよいときはTRUEを指定します。実務では完全一致のFALSEを使う場面がほとんどです。少しハードルが高い関数なので、<a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数の使い方</a>でじっくり確認してみてください。</p>



<p class="wp-block-paragraph">なお、Microsoft 365やExcel 2021以降では、VLOOKUPの後継となる<a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数</a>も使えます。これから覚えるなら、こちらも候補に入れておくとよいですよ。</p>



<h3 class="wp-block-heading"><span id="toc14">COUNTIF・IFERROR（次のステップ）</span></h3>



<p class="wp-block-paragraph">SUMやIFに慣れてきたら、次は条件付きの集計やエラー処理にも挑戦してみましょう。</p>



<p class="wp-block-paragraph">COUNTIF関数は、範囲の中で条件に合うセルの個数を数えます。「『りんご』と入力されたセルがいくつあるか」といった集計に使います。</p>



<pre class="wp-block-code"><code>=COUNTIF(A1:A10, &quot;りんご&quot;)</code></pre>



<p class="wp-block-paragraph">IFERROR関数は、数式がエラーになったときに表示する値を指定できる関数です。VLOOKUPで該当データが見つからず <code>#N/A</code> エラーが出るような場面で重宝します。</p>



<pre class="wp-block-code"><code>=IFERROR(VLOOKUP(E1,A:B,2,FALSE), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">それぞれ<a href="https://mashukabu.com/excel-function-howto-use-countif/">COUNTIF関数の使い方</a>と<a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数の使い方</a>で詳しく解説しています。</p>



<h2 class="wp-block-heading"><span id="toc15">関数をもっと使いこなす基礎知識</span></h2>



<p class="wp-block-paragraph">関数そのものとあわせて知っておきたい、2つの基礎知識を紹介します。どちらも関数を実務で使うときに欠かせない考え方です。</p>



<h3 class="wp-block-heading"><span id="toc16">相対参照と絶対参照（$の意味）</span></h3>



<p class="wp-block-paragraph">数式をコピーしたとき、参照するセルがずれるかどうかを決めるのが「参照方式」です。</p>



<ul class="wp-block-list"><li><strong>相対参照</strong>（例: <code>A1</code>）: 数式をコピーすると、参照先も一緒にずれます。</li><li><strong>絶対参照</strong>（例: <code>$A$1</code>）: <code>$</code> を付けると、コピーしても参照先が固定されます。</li></ul>



<p class="wp-block-paragraph">たとえばVLOOKUPで検索する表を固定したいときに便利です。<code>$A$1:$B$100</code> のように絶対参照にしておくと、数式をコピーしても表の範囲がずれません。<code>$</code> は手で入力してもよいですが、セルを選択して <code>F4</code> キーを押すと、相対参照と絶対参照を簡単に切り替えられますよ。</p>



<h3 class="wp-block-heading"><span id="toc17">関数の中に関数を入れる（ネスト）</span></h3>



<p class="wp-block-paragraph">関数の引数の中に、別の関数を入れることもできます。これを「ネスト（入れ子）」と呼びます。</p>



<pre class="wp-block-code"><code>=IF(D1&gt;=80, &quot;合格&quot;, IF(D1&gt;=60, &quot;再試験&quot;, &quot;不合格&quot;))</code></pre>



<p class="wp-block-paragraph">この例では、IF関数の中にさらにIF関数を入れて、3段階で判定しています。ネストは便利ですが、深くしすぎると数式が読みにくくなります。実用上は3〜4段までを目安にしましょう。それ以上複雑になる場合は、IFS関数など別の関数への置き換えを検討してみてくださいね。</p>



<h2 class="wp-block-heading"><span id="toc18">関数入力でよくあるミスと対処法</span></h2>



<p class="wp-block-paragraph">関数を入力したのにエラーが表示された、という経験はないでしょうか。初心者がよくやるミスと、その対処法をまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>ミス</th><th>症状</th><th>対処法</th></tr></thead><tbody><tr><td>「=」を忘れる</td><td>関数がそのまま文字として表示される</td><td>セルの先頭に半角の「=」を入力する</td></tr><tr><td>全角で入力する</td><td>エラーが出るか、文字として表示される</td><td>半角英数モードで入力する</td></tr><tr><td>カッコの閉じ忘れ</td><td>エラーメッセージが表示される</td><td>修正候補が表示されたら「はい」をクリックする</td></tr><tr><td>カンマとコロンの間違い</td><td>意図しない計算結果になる</td><td>範囲は「:（コロン）」、引数の区切りは「,（カンマ）」</td></tr><tr><td>文字列の引用符忘れ</td><td>#NAME? エラーが出る</td><td>文字列は「&#8221;」で囲む</td></tr><tr><td>セル範囲の指定ミス</td><td>計算結果が正しくない</td><td>数式バーで範囲を確認し、選び直す</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特に多いのが「全角で入力してしまう」ミスです。関数は半角英数字で入力する必要があります。入力前に、日本語入力がオフになっているか確認してみてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc19">エラー値が表示されたときは</span></h3>



<p class="wp-block-paragraph">エラーが表示されたときは、セルに出るエラー値から原因を特定できます。代表的なものを挙げておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー値</th><th>よくある原因</th></tr></thead><tbody><tr><td>#DIV/0!</td><td>0で割り算した（割る数が空白セルの場合も）</td></tr><tr><td>#VALUE!</td><td>引数の型が合わない（文字列を計算しようとした等）</td></tr><tr><td>#NAME?</td><td>関数名のスペルミス、引用符の付け忘れ</td></tr><tr><td>#REF!</td><td>参照していたセルが削除された</td></tr><tr><td>#N/A</td><td>VLOOKUPなどで検索値が見つからない</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">エラーの種類ごとの詳しい原因と対処法は、<a href="https://mashukabu.com/excel-error-value-list/">セルに表示されるエラーの種類と原因、対処方法を解説</a>の記事で確認できます。</p>



<h2 class="wp-block-heading"><span id="toc20">関数を効率よく覚えるコツ</span></h2>



<p class="wp-block-paragraph">関数は数百種類ありますが、全部覚える必要はありません。効率よく身につけるためのコツを3つ紹介します。</p>



<h3 class="wp-block-heading"><span id="toc21">よく使う関数から覚える</span></h3>



<p class="wp-block-paragraph">まずは先ほど紹介したSUM・AVERAGE・COUNT・IF・VLOOKUPから始めましょう。この5つを使いこなせれば、日常業務の大半はカバーできます。慣れてきたら、次のステップとしてCOUNTIFやSUMIFなどの条件付き関数に進むのがおすすめですよ。</p>



<h3 class="wp-block-heading"><span id="toc22">実際に手を動かす</span></h3>



<p class="wp-block-paragraph">関数は見て覚えるよりも、実際にExcelを開いて入力してみるほうが早く身につきます。練習用のデータを作って、いろいろな関数を試してみてください。</p>



<p class="wp-block-paragraph">最初は正しく動かなくても気にしなくて大丈夫です。エラーが出ても壊れることはないので、何度でもやり直せますよ。</p>



<h3 class="wp-block-heading"><span id="toc23">どんな関数があるか、ざっくり把握しておく</span></h3>



<p class="wp-block-paragraph">関数名やスペルを暗記する必要はありません。でも「こういうことができる関数がある」と知っておくだけで、作業中に「あの関数が使えそう」と気づけるようになります。</p>



<p class="wp-block-paragraph">以下の一覧ページに目を通しておくと、いざというときに役立ちます。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-list-by-function/">機能別 Excel関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-alphabetical-order/">アルファベット順 Excel関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-alphabetical-order-pronunciation/">Excel関数の読み方一覧</a></li></ul>



<h2 class="wp-block-heading"><span id="toc24">よくある質問（FAQ）</span></h2>



<p class="wp-block-paragraph">最後に、Excel関数について初心者からよく寄せられる質問をまとめました。</p>



<p class="wp-block-paragraph"><strong>Q1. 関数と数式は何が違うのですか？</strong></p>



<p class="wp-block-paragraph">数式は <code>=</code> で始まる計算式全般のことです。関数は、その数式の中で使う、あらかじめ用意された機能を指します。<code>=A1+B1</code> は関数を使わない数式、<code>=SUM(A1:B1)</code> はSUM関数を使った数式です。関数は数式の一部、とイメージしてください。</p>



<p class="wp-block-paragraph"><strong>Q2. 関数名は大文字と小文字、どちらで入力すればいいですか？</strong></p>



<p class="wp-block-paragraph">どちらでも問題ありません。<code>sum</code> と小文字で入力しても、確定すると自動で <code>SUM</code> と大文字に変換されます。入力のしやすい方で大丈夫ですよ。</p>



<p class="wp-block-paragraph"><strong>Q3. 関数はいくつ覚えればいいですか？</strong></p>



<p class="wp-block-paragraph">まずはSUM・AVERAGE・COUNT・IF・VLOOKUPの5つで十分です。実務でよく使うのは20〜30種類ほどなので、必要になったときに少しずつ増やしていけばOKです。</p>



<p class="wp-block-paragraph"><strong>Q4. 引数（ひきすう）は全部暗記しないとダメですか？</strong></p>



<p class="wp-block-paragraph">暗記は不要です。関数を入力し始めると、Excelが引数のヒントを表示してくれます。それを見ながら入力すれば、暗記していなくても正しく使えますよ。</p>



<p class="wp-block-paragraph"><strong>Q5. 関数を入力したのに計算されず、文字のまま表示されます。</strong></p>



<p class="wp-block-paragraph">主な原因は2つです。1つはセルの先頭に半角の <code>=</code> を入れ忘れているケース。もう1つは、セルの表示形式が「文字列」になっているケースです。後者の場合は、表示形式を「標準」に直してから入力し直してみてください。</p>



<p class="wp-block-paragraph"><strong>Q6. Macのエクセルでも同じ関数が使えますか？</strong></p>



<p class="wp-block-paragraph">基本的な関数は、WindowsでもMacでも共通して使えます。ごく一部にWindows専用の関数もありますが、SUMやIF、VLOOKUPといったよく使う関数は問題なく使えますよ。</p>



<p class="wp-block-paragraph"><strong>Q7. Googleスプレッドシートでも同じ関数が使えますか？</strong></p>



<p class="wp-block-paragraph">SUM・IF・VLOOKUPなど、多くの関数はGoogleスプレッドシートでもほぼ同じように使えます。ただし、一部の関数は名称や仕様が異なる場合があります。乗り換えるときは、その関数が対応しているか確認しておくと安心です。</p>



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



<p class="wp-block-paragraph">Excel関数とは、あらかじめ用意されている計算の仕組みのことです。SUMやIFなど数百種類の関数があり、<code>=関数名(引数)</code> の形で入力します。</p>



<p class="wp-block-paragraph">この記事で紹介した内容をおさらいしておきましょう。</p>



<ul class="wp-block-list"><li>関数は「=関数名(引数)」の形で入力する</li><li>引数は関数に「何を計算するか」を教える情報。必須引数と省略できる引数がある</li><li>関数は数式の一部（すべての数式が関数を使うわけではない）</li><li>入力方法は「直接入力」「関数の挿入ダイアログ」「オートSUM」の3つ</li><li>まずはSUM・AVERAGE・COUNT・IF・VLOOKUPの5つから始める</li><li>相対参照・絶対参照、ネストも知っておくと応用が利く</li><li>全部覚える必要はなく、使いながら少しずつ慣れていけばOK</li></ul>



<p class="wp-block-paragraph">関数は最初こそ難しく感じますが、焦らず1つずつ使っていけば自然と身につきます。まずはSUM関数で合計を出すところから、ぜひ試してみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
