<?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/%e3%82%a2%e3%83%89%e3%82%a4%e3%83%b3/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Sat, 09 May 2026 10:27:31 +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>ExcelのCALL関数の使い方｜DLL/XLLの関数呼び出し</title>
		<link>https://mashukabu.com/excel-call/</link>
					<comments>https://mashukabu.com/excel-call/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 09 May 2026 10:27:31 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[CALL関数]]></category>
		<category><![CDATA[DLL]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[REGISTER関数]]></category>
		<category><![CDATA[XLL]]></category>
		<category><![CDATA[XLM]]></category>
		<category><![CDATA[アドイン]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6696</guid>

					<description><![CDATA[ExcelのCALL関数はDLLやXLLの外部関数を呼び出す特殊関数です。構文・type_textの型コード一覧・REGISTER.IDとの連携・現代Excelで非推奨とされる理由とセキュリティリスクまで、上級者向けに誠実に解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ExcelのCALL関数は、DLLやXLLの中にある外部関数をワークシートから直接呼び出すための特殊関数です。DLLとはWindowsで共有して使えるコンパイル済みコード、XLLはそれをExcel専用に拡張したファイルを指します。</p>



<p class="wp-block-paragraph">正直に言うと、一般の業務でCALL関数を使う場面はほぼありません。アドイン開発者やレガシーExcelファイルの保守担当者など、限られた上級者向けの関数です。</p>



<p class="wp-block-paragraph">ただ、古いファイルを開いたら見慣れない <code>=CALL(...)</code> が出てきた、という方もいるはずです。この記事ではExcel CALL関数の構文・type_textの型コード・REGISTER.IDとの関係・現代では非推奨である理由までを誠実に解説します。読み終えるころには「読めるが書かない」関数として、CALL関数を正しく扱えるようになります。</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">ExcelのCALL関数とは？DLL/XLLの外部関数を呼び出す特殊関数</a></li><li><a href="#toc2" tabindex="0">ExcelのCALL関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">形式1：DLLを直接指定する</a></li><li><a href="#toc4" tabindex="0">形式2：REGISTER関数で登録したIDから呼ぶ</a></li></ol></li><li><a href="#toc5" tabindex="0">type_textの型コード一覧（戻り値・引数の型を指定する記号）</a></li><li><a href="#toc6" tabindex="0">REGISTER.ID関数との関係（CALL関数の実用パターン）</a></li><li><a href="#toc7" tabindex="0">CALL関数の代替手段（VBA・XLLアドイン・Office Scripts）</a><ol><li><a href="#toc8" tabindex="0">VBAのDeclareステートメント</a></li><li><a href="#toc9" tabindex="0">XLLアドイン（C API / Excel-DNA）</a></li><li><a href="#toc10" tabindex="0">Office Scripts（クラウド/Excel for Web）</a></li><li><a href="#toc11" tabindex="0">Power Automate / Power Query</a></li></ol></li><li><a href="#toc12" tabindex="0">CALL関数を使うべきでない理由とセキュリティリスク</a><ol><li><a href="#toc13" tabindex="0">理由1：セキュリティリスクが高い</a></li><li><a href="#toc14" tabindex="0">理由2：保守性が低い</a></li><li><a href="#toc15" tabindex="0">理由3：ポータビリティが低い</a></li></ol></li><li><a href="#toc16" tabindex="0">まとめ：CALL関数は「読めるが書かない」関数</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのCALL関数とは？DLL/XLLの外部関数を呼び出す特殊関数</span></h2>



<p class="wp-block-paragraph">ExcelのCALL関数は、DLLやXLLというExcel外部のコンパイル済みライブラリに含まれる関数を呼び出すための特殊関数です。SUM関数やIF関数のようなExcel内蔵関数とは性質が違います。C/C++などで書かれた外部コードをワークシートから実行できる、いわば「橋渡し」の役割を担います。</p>



<p class="wp-block-paragraph">DLLとは、Windowsで複数のプログラムから共有して使えるようコンパイル済みコードをまとめたファイルのことです。<code>user32.dll</code> や <code>kernel32.dll</code> などWindows標準のものから、業務システム独自のものまで種類はさまざまです。XLLはこのDLLをExcel専用に拡張したもので、Excelに直接組み込んで関数として登録できます。</p>



<p class="wp-block-paragraph">CALL関数は古いExcel（Excel 4.0時代のXLM 4.0マクロ言語）から残る互換機能です。現在も互換性のために維持されていますが、<strong>現代の業務利用では原則使うべきでない関数</strong>である点を、最初にお伝えしておきます。理由は記事後半で詳しく解説します。</p>



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



<p class="wp-block-paragraph">CALL関数には2つの呼び出し形式があります。直接DLLを指定する形式と、REGISTER関数で登録済みのIDから呼ぶ形式です。</p>



<h3 class="wp-block-heading"><span id="toc3">形式1：DLLを直接指定する</span></h3>



<pre class="wp-block-code"><code>=CALL(module_text, procedure, type_text, argument1, argument2, ...)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>説明</th></tr></thead><tbody><tr><td>module_text</td><td>DLL/XLLのファイル名またはフルパス（例: &#8220;user32&#8243;、&#8221;C:\MYLIB.DLL&#8221;）</td></tr><tr><td>procedure</td><td>呼び出す関数名（文字列）またはエクスポート序数</td></tr><tr><td>type_text</td><td>戻り値・引数の型を表すコード文字列（例: &#8220;JJB&#8221;）</td></tr><tr><td>argument1, &#8230;</td><td>DLL関数に渡す実引数</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>module_text</code> は拡張子 <code>.dll</code> を省略できます。Windows標準DLLなら <code>"user32"</code> のように関数名だけで指定可能です。</p>



<h3 class="wp-block-heading"><span id="toc4">形式2：REGISTER関数で登録したIDから呼ぶ</span></h3>



<pre class="wp-block-code"><code>=CALL(register_id, argument1, argument2, ...)</code></pre>



<p class="wp-block-paragraph">REGISTER関数（またはREGISTER.ID関数）でDLL関数を一度Excelに登録すると、戻り値としてID番号が返ります。次回以降は <code>module_text</code> や <code>procedure</code> を毎回書く必要がありません。IDと引数だけでCALLを実行できるため、実用上ほとんどのケースでこちらの形式が使われます。</p>



<h2 class="wp-block-heading"><span id="toc5">type_textの型コード一覧（戻り値・引数の型を指定する記号）</span></h2>



<p class="wp-block-paragraph">CALL関数で最も理解が難しいのが <code>type_text</code> の型コードです。1文字の記号でC言語の型を指定する独自ルールで、慣れないと暗号のように見えます。</p>



<p class="wp-block-paragraph">ルールはシンプルです。<strong>先頭1文字が戻り値の型、2文字目以降が引数の型を順番に並べる</strong>という決まりになっています。</p>



<p class="wp-block-paragraph">主要な型コードを以下の表にまとめます。</p>



<figure class="wp-block-table"><table><thead><tr><th>コード</th><th>型の意味</th><th>C言語型</th><th>備考</th></tr></thead><tbody><tr><td>A</td><td>論理値（FALSE=0, TRUE=1）</td><td>short int</td><td>&nbsp;</td></tr><tr><td>B</td><td>倍精度浮動小数点数</td><td>double</td><td>Excelの数値の標準型</td></tr><tr><td>C</td><td>NULL終端文字列（バイト列）</td><td>char *</td><td>最大255文字</td></tr><tr><td>D</td><td>バイトカウント文字列</td><td>unsigned char *</td><td>先頭1バイトに長さを格納</td></tr><tr><td>E</td><td>倍精度浮動小数点ポインタ</td><td>double *</td><td>&nbsp;</td></tr><tr><td>F</td><td>NULL終端文字列を返す（modify用）</td><td>char *</td><td>&nbsp;</td></tr><tr><td>G</td><td>バイトカウント文字列を返す（modify用）</td><td>unsigned char *</td><td>&nbsp;</td></tr><tr><td>H</td><td>符号なし2バイト整数</td><td>unsigned short int</td><td>&nbsp;</td></tr><tr><td>I</td><td>符号付き2バイト整数</td><td>short int</td><td>&nbsp;</td></tr><tr><td>J</td><td>符号付き4バイト整数</td><td>long int</td><td>&nbsp;</td></tr><tr><td>K</td><td>XLOPER配列</td><td>FP *</td><td>XLLで配列を扱う</td></tr><tr><td>L</td><td>論理値ポインタ</td><td>unsigned short int *</td><td>&nbsp;</td></tr><tr><td>N</td><td>符号付き4バイト整数ポインタ</td><td>long int *</td><td>&nbsp;</td></tr><tr><td>P</td><td>XLOPER（汎用Excelデータ型）</td><td>XLOPER *</td><td>XLLで使われる</td></tr><tr><td>R</td><td>XLOPER参照型</td><td>XLOPER *</td><td>参照渡し</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">たとえば <code>"JJB"</code> と書くと、戻り値が <code>long int</code> で、引数が <code>long int</code> と <code>double</code> のC関数を意味します。<code>"BBB"</code> なら倍精度の引数2つを取って倍精度を返す関数です。</p>



<p class="wp-block-paragraph">64bit版のExcelではポインタ型（C/D/E/F/G/L/N/P/R）の扱いに違いがあります。そのため同じ型コードでも、32bit/64bitでDLLの再コンパイルや書き換えが必要になることがあります。</p>



<h2 class="wp-block-heading"><span id="toc6">REGISTER.ID関数との関係（CALL関数の実用パターン）</span></h2>



<p class="wp-block-paragraph">CALL関数を実用する場面では、ほぼ必ずREGISTER関数（またはREGISTER.ID関数）とセットで使います。3つの関数の役割を整理します。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>役割</th></tr></thead><tbody><tr><td>REGISTER</td><td>DLL関数をExcelに登録し、ID（数値）を戻り値で返す</td></tr><tr><td>REGISTER.ID</td><td>登録済み関数のIDを取得する（再登録なし）</td></tr><tr><td>CALL</td><td>取得したIDと引数だけでDLL関数を実行する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">実用上のパターンはこうです。</p>



<pre class="wp-block-code"><code>A1: =REGISTER(&quot;MYLIB.DLL&quot;, &quot;MyFunc&quot;, &quot;BB&quot;)
    → 登録成功でID（例: 1）を返す
A2: =CALL(A1, 100)
    → MyFunc(100) を実行し、倍精度浮動小数点を返す
A3: =CALL(A1, 200)
    → 同じMyFunc(200) を実行</code></pre>



<p class="wp-block-paragraph">REGISTERでDLL関数を一度Excelに登録しておけば、以降はIDを使い回してCALLで何度でも呼び出せる仕組みです。<code>module_text</code>/<code>procedure</code>/<code>type_text</code> を毎回繰り返す必要がなく、数式が短く保守しやすくなります。</p>



<p class="wp-block-paragraph">なおREGISTERとCALLは「マクロ関数（XLM 4.0マクロ言語）」のグループに属します。互換性のために残されている古いマクロ言語で、後述するセキュリティ警戒の対象でもあります。</p>



<h2 class="wp-block-heading"><span id="toc7">CALL関数の代替手段（VBA・XLLアドイン・Office Scripts）</span></h2>



<p class="wp-block-paragraph">「DLLの関数を呼びたい」という目的だけなら、現代のExcelではCALL関数より優れた選択肢が複数あります。</p>



<h3 class="wp-block-heading"><span id="toc8">VBAのDeclareステートメント</span></h3>



<p class="wp-block-paragraph">VBAコード内で <code>Declare PtrSafe Function ...</code> と書いてDLL関数を宣言する方法です。CALL関数と同じくDLLを呼べますが、エラー処理・型チェック・デバッグのしやすさが格段に上です。既存のDLLを呼ぶだけなら、まず候補に挙がります。</p>



<pre class="wp-block-code"><code>Declare PtrSafe Function MessageBoxA Lib &quot;user32&quot; _
    (ByVal hWnd As LongPtr, ByVal lpText As String, _
     ByVal lpCaption As String, ByVal uType As Long) As Long</code></pre>



<h3 class="wp-block-heading"><span id="toc9">XLLアドイン（C API / Excel-DNA）</span></h3>



<p class="wp-block-paragraph">DLLをExcelの「カスタム関数」として登録する方法です。XLLとして関数を提供すれば、利用者はCALL関数ではなく <code>=MyFunc(100)</code> のように通常の関数として呼び出せます。Excel-DNAというオープンソースフレームワークを使えば、C#でもXLLアドインを開発できます。</p>



<h3 class="wp-block-heading"><span id="toc10">Office Scripts（クラウド/Excel for Web）</span></h3>



<p class="wp-block-paragraph">TypeScriptでExcelを自動化する仕組みで、Excel for WebやMicrosoft 365で利用できます。クロスプラットフォームで動き、クラウド連携にも強いのが特徴です。Windows専用DLLは呼べませんが、API連携やデータ処理ならこちらが現代的な選択肢になります。</p>



<h3 class="wp-block-heading"><span id="toc11">Power Automate / Power Query</span></h3>



<p class="wp-block-paragraph">データ統合やAPIアクセスが目的なら、Power AutomateやPower Queryで対応できる範囲が広がっています。「CALLでなにかを呼びたい」という要件の多くは、これらのツールで代替可能です。</p>



<h2 class="wp-block-heading"><span id="toc12">CALL関数を使うべきでない理由とセキュリティリスク</span></h2>



<p class="wp-block-paragraph">CALL関数を新規に書くことが推奨されない理由は、大きく3つあります。</p>



<h3 class="wp-block-heading"><span id="toc13">理由1：セキュリティリスクが高い</span></h3>



<p class="wp-block-paragraph">CALL関数は任意のDLLの任意の関数を実行できます。これは便利な反面、過去にマクロウイルスや遠隔コード実行（RCE）の手段として悪用された歴史があります。</p>



<p class="wp-block-paragraph">最近のExcelは、インターネット経由のファイルやメール添付ファイルでマクロやXLM 4.0関数を<strong>既定でブロックする仕様</strong>に変わりました。Microsoft Defender SmartScreenやマクロブロック機能が、不審なファイルでのCALL実行を防いでくれます。</p>



<p class="wp-block-paragraph">裏を返すと、信頼できないファイルでCALL関数を見かけたら警戒すべきです。<strong>そのファイル自体がマクロウイルスの可能性も視野に入れる</strong>のが正しい態度になります。安易に「コンテンツの有効化」をクリックしないことを強くおすすめします。</p>



<h3 class="wp-block-heading"><span id="toc14">理由2：保守性が低い</span></h3>



<p class="wp-block-paragraph"><code>type_text</code> の型コードを1文字でも間違えると、Excelごとクラッシュすることがあります。デバッガでステップ実行することもできず、原因切り分けが困難です。VBAのDeclareなら型不整合をある程度検出できますが、CALL関数にはそうした安全弁がありません。</p>



<h3 class="wp-block-heading"><span id="toc15">理由3：ポータビリティが低い</span></h3>



<p class="wp-block-paragraph">32bit Excelと64bit Excelで、ポインタ型のサイズが異なります。同じ <code>type_text</code> の数式でも、32bit版では動いても64bit版で動かないケースが頻繁に起こります。VBAのDeclareでは <code>PtrSafe</code> キーワードで64bit対応を明示できますが、CALL関数には同等の仕組みがありません。</p>



<p class="wp-block-paragraph">加えて、MicrosoftはXLM 4.0マクロを「将来的に廃止される可能性がある機能」と位置づけています。新規プロジェクトでの採用は推奨されていません。</p>



<h2 class="wp-block-heading"><span id="toc16">まとめ：CALL関数は「読めるが書かない」関数</span></h2>



<p class="wp-block-paragraph">ExcelのCALL関数は、DLLやXLLの外部関数をワークシートから直接呼び出せる強力な特殊関数です。一方で、現代の業務利用ではセキュリティ・保守性・ポータビリティのいずれも代替手段の方が優れています。VBA Declare・XLLアドイン・Office Scriptsが充実した現在、新規に書くべき関数ではありません。</p>



<p class="wp-block-paragraph">整理すると、押さえるべきポイントは以下の3点です。</p>



<ul class="wp-block-list"><li><strong>構文</strong>：<code>=CALL(module_text, procedure, type_text, ...)</code> で外部DLLの関数を呼べる</li><li><strong>type_text</strong>：先頭1文字が戻り値、2文字目以降が引数の型（B=double, J=long, C=char* など）</li><li><strong>現代Excelでは非推奨</strong>：セキュリティ・保守性・ポータビリティの観点でVBAやXLLが推奨される</li></ul>



<p class="wp-block-paragraph">不審なファイルでCALL関数を見かけた場合は、安易に有効化せず、ファイルの出所を確認してください。逆に既存資産の保守でCALL関数のメンテナンスが必要な場合は、可能な範囲でVBAのDeclareやXLLアドインへの移行を検討するのが安全です。</p>



<p class="wp-block-paragraph">Excelの旧式・特殊関数つながりでは、互換性関数の<a href="https://mashukabu.com/excel-varp/">VARP関数（母分散）</a>、現代では新関数推奨の<a href="https://mashukabu.com/excel-ttest/">TTEST関数（t検定）</a>、旧式の<a href="https://mashukabu.com/excel-normsdist/">NORMSDIST関数（標準正規分布）</a>もあわせて押さえておくと、Excelの「過去と現在」が立体的に見えてきます。CALL関数は<strong>読めるが書かない</strong>、これが正しい付き合い方です。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-call/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのREGISTER.ID関数の使い方｜DLL/XLLのIDを返す</title>
		<link>https://mashukabu.com/excel-registerid/</link>
					<comments>https://mashukabu.com/excel-registerid/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 09 May 2026 10:20:45 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[CALL関数]]></category>
		<category><![CDATA[DLL]]></category>
		<category><![CDATA[REGISTER.ID]]></category>
		<category><![CDATA[XLL]]></category>
		<category><![CDATA[アドイン]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6697</guid>

					<description><![CDATA[ExcelのREGISTER.ID関数は、登録済みのDLL/XLLの関数IDを返す上級者向けの特殊関数です。CALL関数とのセットで使われる構文・引数・実例を解説し、現代のVBAやOffice Scriptsでの代替方法も紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ExcelのREGISTER.ID関数は、すでに登録されているDLLやXLLの関数IDを返す、上級者向けの特殊な関数です。CALL関数とセットで使うことで、Excelの外側にあるC/C++製のライブラリの関数を、ワークシートから直接呼び出せるようになります。</p>



<p class="wp-block-paragraph">普段のExcel業務ではまず触ることがない関数ですが、古いマクロブックの保守や、レガシーなアドイン開発の現場では今も登場します。この記事では、構文と引数、CALL関数とのセットでの使い方、そして「現代のExcelでは何を使えばいいのか」までをまとめて解説します。</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のREGISTER.ID関数とは？</a></li><li><a href="#toc2" tabindex="0">REGISTER.ID関数の構文と引数</a><ol><li><a href="#toc3" tabindex="0">type_text の型コード</a></li></ol></li><li><a href="#toc4" tabindex="0">REGISTER.ID関数の使い方（CALL関数とのセット利用）</a><ol><li><a href="#toc5" tabindex="0">概念例：Windows APIの GetTickCount を呼び出す</a></li><li><a href="#toc6" tabindex="0">REGISTER関数・CALL関数との役割分担</a></li></ol></li><li><a href="#toc7" tabindex="0">REGISTER.ID関数を使う前に知っておきたい注意点</a><ol><li><a href="#toc8" tabindex="0">1. type_text を間違えるとExcelがクラッシュする</a></li><li><a href="#toc9" tabindex="0">2. 32bit/64bit の整合性</a></li><li><a href="#toc10" tabindex="0">3. セキュリティリスク</a></li><li><a href="#toc11" tabindex="0">4. マクロ有効ブック（.xlsm / .xlam）でのみ使える</a></li></ol></li><li><a href="#toc12" tabindex="0">REGISTER.ID関数の代替手段（現代Excelでの推奨）</a><ol><li><a href="#toc13" tabindex="0">代替1: VBAの Declare 文</a></li><li><a href="#toc14" tabindex="0">代替2: Office Scripts（Microsoft 365 / Excel for the Web）</a></li><li><a href="#toc15" tabindex="0">代替3: Office アドイン（JavaScript API）</a></li><li><a href="#toc16" tabindex="0">代替4: Power Query / Power Automate</a></li></ol></li><li><a href="#toc17" tabindex="0">CALL関数・EUROCONVERT関数との違い</a></li><li><a href="#toc18" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのREGISTER.ID関数とは？</span></h2>



<p class="wp-block-paragraph">REGISTER.ID関数（読み方：レジスター・アイディー）は、すでに登録されているDLL（ダイナミックリンクライブラリ）またはXLL（Excel拡張アドイン）の関数の、登録済みIDを返す関数です。関数名は「REGISTER（登録）+ ID（識別子）」に由来します。</p>



<p class="wp-block-paragraph">DLLやXLLには、Excelの外側で動作するC/C++製のプログラム部品が入っています。それをワークシート関数のように使うためには、まずExcelに「この関数を使います」と登録する手順が必要です。REGISTER.IDはこの登録済みのIDを取得する役割を担います。</p>



<p class="wp-block-paragraph">ポイントは、対象の関数がまだ未登録の場合は自動的に登録した上でIDを返してくれる点です。そのため、CALL関数と組み合わせれば「登録 → 実行」を1セットで行えます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong><br>REGISTER.IDは Excel 4.0 マクロ（XLM）時代に作られた古い関数です。現代のExcelには互換性のために残されていますが、新規利用は推奨されていません。後述する代替手段の利用を強くおすすめします。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc2">REGISTER.ID関数の構文と引数</span></h2>



<p class="wp-block-paragraph">REGISTER.ID関数の構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=REGISTER.ID(module_text, procedure, [type_text])</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>内容</th></tr></thead><tbody><tr><td>module_text</td><td>必須</td><td>DLLまたはXLLのファイル名（フルパスまたはファイル名）を文字列で指定します</td></tr><tr><td>procedure</td><td>必須</td><td>DLL/XLL内の関数名（C/C++のエクスポート名）または序数を文字列で指定します</td></tr><tr><td>type_text</td><td>省略可</td><td>戻り値と引数の型を表す型コード文字列を指定します（例: &#8220;JC&#8221;）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">戻り値は登録IDを表す整数値です。関数の登録に失敗した場合は <code>#VALUE!</code> エラーが返ります。</p>



<h3 class="wp-block-heading"><span id="toc3">type_text の型コード</span></h3>



<p class="wp-block-paragraph">type_text は、戻り値と各引数のデータ型をアルファベット1文字で並べた文字列です。最初の文字が戻り値の型、それ以降の文字が引数の型を順に表します。</p>



<figure class="wp-block-table"><table><thead><tr><th>コード</th><th>意味</th></tr></thead><tbody><tr><td>A</td><td>論理値（FALSE/TRUE）</td></tr><tr><td>B</td><td>IEEE 8バイト浮動小数点数</td></tr><tr><td>C</td><td>NULL終端文字列（C文字列）</td></tr><tr><td>H</td><td>符号なし2バイト整数</td></tr><tr><td>I</td><td>符号付き2バイト整数</td></tr><tr><td>J</td><td>符号付き4バイト整数</td></tr><tr><td>L</td><td>論理値の参照</td></tr><tr><td>O</td><td>配列</td></tr><tr><td>R</td><td>XLOPER データ構造体</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">たとえば、引数なしで4バイト整数を返す関数なら <code>"J"</code>、文字列を1つ受け取って4バイト整数を返す関数なら <code>"JC"</code> のように指定します。</p>



<h2 class="wp-block-heading"><span id="toc4">REGISTER.ID関数の使い方（CALL関数とのセット利用）</span></h2>



<p class="wp-block-paragraph">REGISTER.ID単体では何もできません。取得したIDをCALL関数に渡してはじめて、外部DLLの関数を実行できます。基本の流れは次のとおりです。</p>



<ol class="wp-block-list"><li>REGISTER.IDで対象DLL関数のIDを取得する</li><li>そのIDをCALL関数の第1引数に渡す</li><li>CALLが実際の関数を呼び出して結果を返す</li></ol>



<h3 class="wp-block-heading"><span id="toc5">概念例：Windows APIの GetTickCount を呼び出す</span></h3>



<p class="wp-block-paragraph">たとえば Windows の <code>kernel32.dll</code> に含まれる <code>GetTickCount</code>（システム起動からの経過ミリ秒を返す関数）を呼び出す場合は、次のようなイメージになります。</p>



<pre class="wp-block-code"><code>A1: =REGISTER.ID(&quot;KERNEL32.DLL&quot;, &quot;GetTickCount&quot;, &quot;J&quot;)
A2: =CALL(A1)</code></pre>



<p class="wp-block-paragraph">A1で <code>GetTickCount</code> の登録IDを取得し、A2でそのIDを使って関数を実行します。<code>"J"</code> は「引数なし、戻り値は4バイト整数」を意味します。</p>



<h3 class="wp-block-heading"><span id="toc6">REGISTER関数・CALL関数との役割分担</span></h3>



<p class="wp-block-paragraph">REGISTER.IDは似た名前の関数が複数あり、混乱しやすいので役割を整理しておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>役割</th></tr></thead><tbody><tr><td>REGISTER</td><td>DLL関数を登録し、エイリアス（別名）を作成する</td></tr><tr><td>REGISTER.ID</td><td>登録済みの関数IDを返す（未登録なら自動登録）</td></tr><tr><td>CALL</td><td>IDまたは登録情報経由で外部関数を実行する</td></tr><tr><td>UNREGISTER</td><td>登録を解除する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ざっくり言うと、REGISTERは「登録して名前をつける」、REGISTER.IDは「IDだけ返す」、CALLは「IDで実行する」と覚えておけば十分です。</p>



<h2 class="wp-block-heading"><span id="toc7">REGISTER.ID関数を使う前に知っておきたい注意点</span></h2>



<p class="wp-block-paragraph">REGISTER.ID関数は強力ですが、扱いを誤るとExcel自体が落ちる危険があります。利用前に必ず次の点を確認してください。</p>



<h3 class="wp-block-heading"><span id="toc8">1. type_text を間違えるとExcelがクラッシュする</span></h3>



<p class="wp-block-paragraph">型コードと実際のDLL関数のシグネチャ（引数・戻り値の型）が一致しないと、メモリ破壊が起きてExcelごと強制終了することがあります。保存していない作業内容も失われるため、検証は必ず別ブックで行ってください。</p>



<h3 class="wp-block-heading"><span id="toc9">2. 32bit/64bit の整合性</span></h3>



<p class="wp-block-paragraph">32bit版のExcelは32bit DLLを、64bit版のExcelは64bit DLLしか呼び出せません。同じファイル名のDLLでも、ビット数が合っていないと <code>#VALUE!</code> エラーやクラッシュの原因になります。</p>



<h3 class="wp-block-heading"><span id="toc10">3. セキュリティリスク</span></h3>



<p class="wp-block-paragraph">任意のDLLを読み込めるということは、悪意あるDLLを指定された場合に任意コードが実行されるリスクがあるということです。出所不明のブックでREGISTER.IDが使われている場合は、内容を必ず確認してから開きましょう。</p>



<h3 class="wp-block-heading"><span id="toc11">4. マクロ有効ブック（.xlsm / .xlam）でのみ使える</span></h3>



<p class="wp-block-paragraph">REGISTER.IDはマクロ機能の一部として扱われます。通常の <code>.xlsx</code> ファイルでは保存できません。<code>.xlsm</code> または <code>.xlam</code>、あるいは Excel 4.0 マクロシート（.xlm）から利用してください。</p>



<h2 class="wp-block-heading"><span id="toc12">REGISTER.ID関数の代替手段（現代Excelでの推奨）</span></h2>



<p class="wp-block-paragraph">ここまで読んでお気づきのとおり、REGISTER.IDはとてもクセが強い関数です。Excel 2016 以降では、ほとんどのケースで次のいずれかの代替手段を使うほうが安全で生産的です。</p>



<h3 class="wp-block-heading"><span id="toc13">代替1: VBAの Declare 文</span></h3>



<p class="wp-block-paragraph">VBA の Declare 文を使えば、DLL関数をモジュール内で宣言して使えます。型のチェックも比較的わかりやすく、現代的なエラー処理が組めます。</p>



<pre class="wp-block-code"><code>'--- Windows APIの GetTickCount を宣言 ---
Declare PtrSafe Function GetTickCount Lib &quot;kernel32&quot; () As Long

Sub ShowTick()
    Dim lngTick As Long  ' --- 経過ミリ秒を受け取る変数 ---
    lngTick = GetTickCount()
    MsgBox &quot;起動からの経過ミリ秒: &quot; &amp; lngTick
End Sub</code></pre>



<p class="wp-block-paragraph">64bit Excelでは <code>PtrSafe</code> キーワードが必須です。古いVBAコードを引き継ぐときも、まずDeclare文への置き換えを検討するのがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc14">代替2: Office Scripts（Microsoft 365 / Excel for the Web）</span></h3>



<p class="wp-block-paragraph">Office Scripts は Microsoft 365 環境で動く TypeScript ベースのスクリプト機能です。クラウド連携やチーム共有が前提のため、現代的な業務自動化には Office Scripts が適しています。</p>



<h3 class="wp-block-heading"><span id="toc15">代替3: Office アドイン（JavaScript API）</span></h3>



<p class="wp-block-paragraph">ブラウザでもデスクトップでも動くアドインを作りたい場合は、Office アドインの JavaScript API を使います。Web技術ベースなので保守人材も確保しやすい利点があります。</p>



<h3 class="wp-block-heading"><span id="toc16">代替4: Power Query / Power Automate</span></h3>



<p class="wp-block-paragraph">外部APIや外部データソースと連携したいだけであれば、Power Query や Power Automate のほうが適しています。GUIで構築でき、メンテナンスも容易です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong><br>「DLLを呼び出したい」という要件のうち、9割以上は上記4つのいずれかで解決できます。REGISTER.IDを新規導入する前に、まず代替手段を検討してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc17">CALL関数・EUROCONVERT関数との違い</span></h2>



<p class="wp-block-paragraph">REGISTER.IDと混同しやすい特殊関数の違いを整理しておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>主な役割</th><th>利用シーン</th></tr></thead><tbody><tr><td>REGISTER.ID</td><td>登録済みDLL/XLL関数のIDを返す</td><td>CALL関数とセットで利用</td></tr><tr><td>CALL</td><td>IDまたは登録情報を使って外部関数を実行する</td><td>DLL/XLL内の関数の実行</td></tr><tr><td>EUROCONVERT</td><td>旧EU加盟国通貨をユーロに換算する</td><td>為替・通貨変換（過去用途）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">CALL関数の使い方や互換性については <a href="https://mashukabu.com/excel-call/">ExcelのCALL関数の使い方</a> を、EUROCONVERT関数については <a href="https://mashukabu.com/excel-euroconvert/">ExcelのEUROCONVERT関数の使い方</a> を、それぞれ参照してください。同じく特殊な統計関数として <a href="https://mashukabu.com/excel-normsdist/">ExcelのNORMSDIST関数の使い方</a> も並べて読むと、互換性のために残されている関数群の全体像がつかみやすくなります。</p>



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



<p class="wp-block-paragraph">ExcelのREGISTER.ID関数は、登録済みのDLL/XLLの関数IDを返す上級者向けの特殊関数です。CALL関数と組み合わせて外部ライブラリを呼び出すための中間ステップとして使われます。Excel 2016 以降では VBA の Declare 文・Office Scripts・Office アドイン・Power Query などの代替手段が用意されており、新規利用はほぼ推奨されません。</p>



<p class="wp-block-paragraph">この記事のポイントを振り返ります。</p>



<ul class="wp-block-list"><li>REGISTER.IDは登録済みのDLL/XLL関数のIDを返す関数で、CALL関数とセットで使う</li><li>構文は <code>=REGISTER.ID(module_text, procedure, [type_text])</code> の3引数</li><li>type_text を間違えるとExcelごとクラッシュするため検証は別ブックで行う</li><li>32bit/64bitの整合性とセキュリティリスクに注意する</li><li>現代のExcelでは VBA Declare 文や Office Scripts などの代替手段の利用を推奨</li></ul>



<p class="wp-block-paragraph">レガシー資産の保守で出会う機会はあっても、新規開発で選ぶ場面はまずありません。「こういう関数があった」と仕組みを理解しておけば、古いブックを開いたときに慌てずに済みます。代替手段への置き換えを進めて、保守しやすい環境を整えていきましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-registerid/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのEUROCONVERT関数の使い方｜ユーロ換算</title>
		<link>https://mashukabu.com/excel-euroconvert/</link>
					<comments>https://mashukabu.com/excel-euroconvert/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 09 May 2026 10:20:31 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[EUROCONVERT]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[アドイン]]></category>
		<category><![CDATA[通貨換算]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6694</guid>

					<description><![CDATA[ExcelのEUROCONVERT関数は、ユーロと旧EU各国通貨（マルク・フラン・リラ等）を固定レートで相互換算する関数です。Euro Currency Toolsアドインの有効化、構文・引数、通貨コード一覧、三角換算の使い方を実例で解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ExcelのEUROCONVERT関数は、ユーロ（EUR）と、ユーロ導入前にEU各国で使われていた旧通貨を、欧州委員会が定めた固定レートで相互換算する特殊な関数です。リアルタイム為替レートではなく、ユーロ導入時の確定レートのみを扱います。現在2026年では、過去の請求書や古い会計テンプレートを再計算するレガシー用途が中心になっています。</p>



<p class="wp-block-paragraph">EUROCONVERT関数を使うには、Excelに標準で付属する「Euro Currency Tools（ユーロ通貨ツール）」アドインを有効化する必要があります。アドインなしでは <code>#NAME?</code> エラーが返ります。この記事では、アドインの有効化手順から構文・通貨コード一覧・実用例まで、現役の使い方を解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-3" checked><label class="toc-title" for="toc-checkbox-3">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">EUROCONVERT関数とは？</a><ol><li><a href="#toc2" tabindex="0">関数の基本情報</a></li></ol></li><li><a href="#toc3" tabindex="0">EUROCONVERT関数の構文と引数</a></li><li><a href="#toc4" tabindex="0">Euro Currency Toolsアドインを有効化する手順</a></li><li><a href="#toc5" tabindex="0">対応通貨コードと固定換算レート一覧</a></li><li><a href="#toc6" tabindex="0">EUROCONVERT関数の使用例</a><ol><li><a href="#toc7" tabindex="0">例1: ユーロからドイツマルクへ換算</a></li><li><a href="#toc8" tabindex="0">例2: 完全な精度で計算する</a></li><li><a href="#toc9" tabindex="0">例3: フランス・フランからイタリア・リラへの三角換算</a></li><li><a href="#toc10" tabindex="0">例4: セル参照で複数行を一括換算</a></li></ol></li><li><a href="#toc11" tabindex="0">EUROCONVERT関数を使うときの注意点</a><ol><li><a href="#toc12" tabindex="0">注意1: リアルタイム為替レートではない</a></li><li><a href="#toc13" tabindex="0">注意2: ユーロ未導入のEU加盟国は対象外</a></li><li><a href="#toc14" tabindex="0">注意3: 表示桁数と計算精度は別物</a></li><li><a href="#toc15" tabindex="0">注意4: ファイル共有時はアドインの有効化が必要</a></li></ol></li><li><a href="#toc16" tabindex="0">リアルタイムレートが必要な場合の代替案</a></li><li><a href="#toc17" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">EUROCONVERT関数（読み方：ユーロコンバート）は、ユーロと参加各国の旧通貨を固定レートで換算するアドイン関数です。関数名は「EURO（ユーロ）+ CONVERT（換算する）」に由来します。</p>



<h3 class="wp-block-heading"><span id="toc2">関数の基本情報</span></h3>



<ul class="wp-block-list"><li><strong>分類</strong>: アドイン関数（Euro Currency Tools）</li><li><strong>追加バージョン</strong>: Excel 2002（Office XP）以降</li><li><strong>戻り値</strong>: 換算後の金額（数値）</li><li><strong>必要条件</strong>: ユーロ通貨ツールアドインが有効</li></ul>



<p class="wp-block-paragraph">ユーロは1999年1月に会計通貨として、2002年1月に紙幣・硬貨として正式に流通を開始しました。それに伴い、ドイツマルク（DEM）やフランスフラン（FRF）などの旧通貨は段階的に廃止され、欧州委員会が定めた固定換算レート（不可逆固定レート）でユーロに置き換えられました。EUROCONVERT関数は、この固定レートをそのまま使って金額を変換します。</p>



<p class="wp-block-paragraph">特殊関数や旧仕様の関数つながりでは <a href="https://mashukabu.com/excel-call/">ExcelのCALL関数の使い方</a> や <a href="https://mashukabu.com/excel-normsdist/">ExcelのNORMSDIST関数の使い方</a> も参考になります。</p>



<h2 class="wp-block-heading"><span id="toc3">EUROCONVERT関数の構文と引数</span></h2>



<p class="wp-block-paragraph">EUROCONVERT関数は以下の構文で記述します。</p>



<pre class="wp-block-code"><code>=EUROCONVERT(数値, 換算元通貨, 換算先通貨, [完全な精度], [三角換算の精度])</code></pre>



<p class="wp-block-paragraph">引数は4つあり、後ろ2つは省略可能です。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>説明</th><th>例</th></tr></thead><tbody><tr><td>数値</td><td>換算する金額。直接指定またはセル参照</td><td><code>100</code> / <code>A2</code></td></tr><tr><td>換算元通貨</td><td>元の通貨コード（3文字、文字列）</td><td><code>"DEM"</code></td></tr><tr><td>換算先通貨</td><td>換算先の通貨コード（3文字、文字列）</td><td><code>"EUR"</code></td></tr><tr><td>完全な精度</td><td>TRUEで6桁完全精度。FALSE/省略で通貨ごとの標準桁数</td><td><code>TRUE</code></td></tr><tr><td>三角換算の精度</td><td>ユーロ以外同士の換算時の中間ユーロ値の桁数（3〜6）</td><td><code>5</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">通貨コードは大文字の3文字で、ダブルクォート（<code>"</code>）で囲んで文字列として指定します。小文字や全角でも認識されますが、コード可読性のため大文字推奨です。</p>



<h2 class="wp-block-heading"><span id="toc4">Euro Currency Toolsアドインを有効化する手順</span></h2>



<p class="wp-block-paragraph">EUROCONVERT関数を使う前に、アドインを有効化します。Microsoft 365およびExcel 2021では以下の手順です。</p>



<ol class="wp-block-list"><li>リボンの「ファイル」タブをクリック</li><li>左メニューから「オプション」を選択</li><li>「Excelのオプション」ダイアログで「アドイン」を選択</li><li>下部の「管理」で「Excelアドイン」を選び「設定」ボタンをクリック</li><li>「ユーロ通貨ツール」（Euro Currency Tools）にチェックを入れて「OK」</li></ol>



<p class="wp-block-paragraph">設定後、リボンの「数式」タブに「ユーロ変換」グループが追加され、EUROCONVERT関数がセルで使えるようになります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>アドインが見つからない場合</strong><br>「使用できるアドイン」一覧に「ユーロ通貨ツール」が表示されない場合は、Officeのインストールが「クイック実行」版の最小構成になっている可能性があります。コントロールパネルからOfficeを「変更」→「修復」または「機能を追加」で、Euro Currency Toolsを追加してください。</p></blockquote>



<p class="wp-block-paragraph">アドインを有効化したのに <code>#NAME?</code> が返るときは、ファイルを保存して一度Excelを再起動すると認識されます。</p>



<h2 class="wp-block-heading"><span id="toc5">対応通貨コードと固定換算レート一覧</span></h2>



<p class="wp-block-paragraph">EUROCONVERT関数で扱える通貨コードと、1ユーロあたりの固定換算レートは次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>通貨コード</th><th>通貨名</th><th>国</th><th>1ユーロあたり</th></tr></thead><tbody><tr><td>EUR</td><td>ユーロ</td><td>ユーロ圏共通</td><td>1</td></tr><tr><td>ATS</td><td>シリング</td><td>オーストリア</td><td>13.7603</td></tr><tr><td>BEF</td><td>フラン</td><td>ベルギー</td><td>40.3399</td></tr><tr><td>DEM</td><td>マルク</td><td>ドイツ</td><td>1.95583</td></tr><tr><td>ESP</td><td>ペセタ</td><td>スペイン</td><td>166.386</td></tr><tr><td>FIM</td><td>マルッカ</td><td>フィンランド</td><td>5.94573</td></tr><tr><td>FRF</td><td>フラン</td><td>フランス</td><td>6.55957</td></tr><tr><td>GRD</td><td>ドラクマ</td><td>ギリシャ</td><td>340.750</td></tr><tr><td>IEP</td><td>ポンド</td><td>アイルランド</td><td>0.787564</td></tr><tr><td>ITL</td><td>リラ</td><td>イタリア</td><td>1936.27</td></tr><tr><td>LUF</td><td>フラン</td><td>ルクセンブルク</td><td>40.3399</td></tr><tr><td>NLG</td><td>ギルダー</td><td>オランダ</td><td>2.20371</td></tr><tr><td>PTE</td><td>エスクード</td><td>ポルトガル</td><td>200.482</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">EUに加盟していてもユーロを導入していない国（ポーランドのズロチPLN、スウェーデンのクローナSEK、デンマークのクローネDKKなど）は対象外です。これらをEUROCONVERTで指定すると <code>#VALUE!</code> エラーになります。</p>



<h2 class="wp-block-heading"><span id="toc6">EUROCONVERT関数の使用例</span></h2>



<p class="wp-block-paragraph">実際の使い方を例で見ていきます。</p>



<h3 class="wp-block-heading"><span id="toc7">例1: ユーロからドイツマルクへ換算</span></h3>



<pre class="wp-block-code"><code>=EUROCONVERT(100, &quot;EUR&quot;, &quot;DEM&quot;)</code></pre>



<p class="wp-block-paragraph">結果: <code>195.58</code>（1ユーロ = 1.95583 マルクの固定レートで計算され、マルクの標準桁数2桁に四捨五入）</p>



<h3 class="wp-block-heading"><span id="toc8">例2: 完全な精度で計算する</span></h3>



<pre class="wp-block-code"><code>=EUROCONVERT(100, &quot;EUR&quot;, &quot;DEM&quot;, TRUE)</code></pre>



<p class="wp-block-paragraph">結果: <code>195.583</code>（TRUEを指定すると四捨五入されず、固定レートそのままが返る）</p>



<h3 class="wp-block-heading"><span id="toc9">例3: フランス・フランからイタリア・リラへの三角換算</span></h3>



<p class="wp-block-paragraph">ユーロ以外同士の換算は、内部で「FRF → EUR → ITL」と2段階で計算されます。</p>



<pre class="wp-block-code"><code>=EUROCONVERT(1000, &quot;FRF&quot;, &quot;ITL&quot;, FALSE, 5)</code></pre>



<p class="wp-block-paragraph">結果: 約 <code>295154</code>（中間ユーロ値を5桁精度で計算してからリラに換算）</p>



<p class="wp-block-paragraph">第5引数の <code>5</code> は、中間ユーロ値の精度を指定しています。3〜6の範囲で指定でき、省略すると6桁の完全精度になります。</p>



<h3 class="wp-block-heading"><span id="toc10">例4: セル参照で複数行を一括換算</span></h3>



<p class="wp-block-paragraph">A列に金額、B列に元通貨、C列に換算先通貨が入った表で、D列に換算結果を出す例です。</p>



<pre class="wp-block-code"><code>=EUROCONVERT(A2, B2, C2)</code></pre>



<p class="wp-block-paragraph">オートフィルでD列に展開すれば、複数行をまとめて処理できます。</p>



<h2 class="wp-block-heading"><span id="toc11">EUROCONVERT関数を使うときの注意点</span></h2>



<h3 class="wp-block-heading"><span id="toc12">注意1: リアルタイム為替レートではない</span></h3>



<p class="wp-block-paragraph">EUROCONVERTが返すのは欧州委員会が定めた<strong>固定レート</strong>です。市場のリアルタイム為替レートは反映されません。たとえば日本円とユーロの換算には使えません。</p>



<h3 class="wp-block-heading"><span id="toc13">注意2: ユーロ未導入のEU加盟国は対象外</span></h3>



<p class="wp-block-paragraph">PLN・SEK・DKKなど、ユーロを導入していないEU加盟国の通貨は対象外です。指定すると <code>#VALUE!</code> エラーになります。</p>



<h3 class="wp-block-heading"><span id="toc14">注意3: 表示桁数と計算精度は別物</span></h3>



<p class="wp-block-paragraph"><code>完全な精度</code> 引数（第4引数）は内部の計算精度に影響します。セルの表示桁数（書式設定の「数値」「通貨」など）とは独立しています。両方を意識して設定してください。</p>



<h3 class="wp-block-heading"><span id="toc15">注意4: ファイル共有時はアドインの有効化が必要</span></h3>



<p class="wp-block-paragraph">EUROCONVERTを使ったファイルを別のPCで開くと、相手のExcelでアドインが無効だと <code>#NAME?</code> が表示されます。配布先でも有効化が必要です。</p>



<p class="wp-block-paragraph">旧仕様維持の関数つながりでは <a href="https://mashukabu.com/excel-varp/">ExcelのVARP関数の使い方</a> も参考になります。</p>



<h2 class="wp-block-heading"><span id="toc16">リアルタイムレートが必要な場合の代替案</span></h2>



<p class="wp-block-paragraph">EUROCONVERTは固定レート専用なので、現在の為替レートで換算したい場合は別の方法を使います。</p>



<figure class="wp-block-table"><table><thead><tr><th>方法</th><th>用途</th><th>備考</th></tr></thead><tbody><tr><td>通貨データ型</td><td>Microsoft 365で為替を取得</td><td>セルに国コードを入れて「データ」→「通貨」</td></tr><tr><td>STOCKHISTORY関数</td><td>為替の履歴データを取得</td><td><code>=STOCKHISTORY("USDJPY",...)</code> 形式</td></tr><tr><td>Power Query</td><td>為替APIから取得</td><td>自動更新可能</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">たとえばユーロから日本円への現在レート換算なら、通貨データ型または STOCKHISTORY 関数が現実的な選択肢です。EUROCONVERTは過去の確定レートだけを扱う関数だと割り切って使い分けてください。</p>



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



<p class="wp-block-paragraph">EUROCONVERT関数は、ユーロと旧EU各国通貨を欧州委員会の固定レートで相互換算するアドイン関数です。記事のポイントは次のとおりです。</p>



<ul class="wp-block-list"><li><strong>アドイン必須</strong>: 「ユーロ通貨ツール」を有効化しないと <code>#NAME?</code> エラー</li><li><strong>構文</strong>: <code>=EUROCONVERT(数値, 元通貨, 先通貨, [完全な精度], [三角換算の精度])</code></li><li><strong>対象通貨</strong>: EUR + 旧EU12通貨（DEM, FRF, ITL ほか）。固定レートのみ</li><li><strong>三角換算</strong>: ユーロ以外同士は内部で経由ユーロを通して2段階計算</li><li><strong>現在の主用途</strong>: 過去の請求書・契約書・古い会計テンプレートの再現や保守</li><li><strong>リアルタイム為替</strong>: 通貨データ型 / STOCKHISTORY / Power Query を使う</li></ul>



<p class="wp-block-paragraph">ユーロ導入前のレガシーデータを扱う場面では、EUROCONVERT関数が今でも最も簡潔で正確な手段です。固定レートに割り切って使えば、四半世紀前の取引も1行の式で再計算できます。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-euroconvert/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
