<?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>RTD &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/rtd/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Sun, 17 May 2026 09:16:59 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>RTD &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのRTD関数の使い方｜RTDサーバーからリアルタイムデータを取得する</title>
		<link>https://mashukabu.com/excel-function-howto-use-rtd/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-rtd/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 04 Jan 2023 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[DDE]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[RTD]]></category>
		<category><![CDATA[リアルタイム]]></category>
		<category><![CDATA[株価]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=3241</guid>

					<description><![CDATA[ExcelのRTD関数でRTDサーバーからリアルタイムデータを取得する方法を解説。構文・RTDサーバー接続・株価/為替データ取得・DDEとの比較・#N/Aエラー対処・更新頻度の設定まで完全網羅。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「Excelで株価や為替を秒単位で更新したい」「製造ラインのセンサー値をシートに流し込みたい」――こうした業務要件にピンポイントで応えるのが <strong>RTD関数</strong> です。</p>



<p class="wp-block-paragraph">RTD（RealTimeData）は、外部のRTDサーバーと通信してデータを継続的に取り込む仕組みです。証券会社のトレーディングツール、PLCや SCADA などの現場制御システム、Bloomberg のような金融データサービスで広く使われています。</p>



<p class="wp-block-paragraph">ただし「サーバーが必要」「Windows版限定」「ProgID とトピックの理解が必要」と、初見ではハードルが高い関数でもあります。</p>



<p class="wp-block-paragraph">この記事では、RTD関数の仕組み・書式・基本コード・DDE関数との比較・実務での活用例・エラー対処までを順番に解説します。読み終えるころには、自社環境で RTD を導入するための判断材料がそろうはずです。</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のRTD関数とは？RTDサーバーとリアルタイムデータ取得の仕組み</a><ol><li><a href="#toc2" tabindex="0">読み方と語源</a></li><li><a href="#toc3" tabindex="0">RTDサーバーとは何か</a></li><li><a href="#toc4" tabindex="0">どんな業務シーンで使うのか</a></li><li><a href="#toc5" tabindex="0">対応バージョンと前提条件</a></li></ol></li><li><a href="#toc6" tabindex="0">RTD関数の書式と引数の渡し方</a><ol><li><a href="#toc7" tabindex="0">基本構文</a></li><li><a href="#toc8" tabindex="0">引数一覧</a></li><li><a href="#toc9" tabindex="0">ProgID とは何か</a></li><li><a href="#toc10" tabindex="0">トピックの設計思想</a></li><li><a href="#toc11" tabindex="0">引数を渡すときの注意</a></li></ol></li><li><a href="#toc12" tabindex="0">RTD関数の使い方①｜基本的なRTDサーバー接続例</a><ol><li><a href="#toc13" tabindex="0">例1：ローカルのRTDサーバーから1つの値を取得する</a></li><li><a href="#toc14" tabindex="0">例2：リモートサーバーからデータを取得する</a></li><li><a href="#toc15" tabindex="0">例3：セル参照で動的にデータを切り替える</a></li><li><a href="#toc16" tabindex="0">例4：複数項目を横並びで表示する</a></li><li><a href="#toc17" tabindex="0">更新頻度の調整</a></li></ol></li><li><a href="#toc18" tabindex="0">RTD関数の使い方②｜DDE関数との比較と移行</a><ol><li><a href="#toc19" tabindex="0">DDEとRTDの違い</a></li><li><a href="#toc20" tabindex="0">DDEからRTDへの移行イメージ</a></li><li><a href="#toc21" tabindex="0">移行時のチェックリスト</a></li></ol></li><li><a href="#toc22" tabindex="0">RTD関数の応用｜株価・為替・センサーデータのリアルタイム取得</a><ol><li><a href="#toc23" tabindex="0">活用例1：株価・為替のダッシュボード</a></li><li><a href="#toc24" tabindex="0">活用例2：製造現場のセンサーモニタリング</a></li><li><a href="#toc25" tabindex="0">活用例3：自作RTDサーバーとの連携</a></li><li><a href="#toc26" tabindex="0">活用例4：VBAと組み合わせたアラート発火</a></li></ol></li><li><a href="#toc27" tabindex="0">RTD関数でよくあるエラーと対処法（N/A・接続失敗・更新されない）</a><ol><li><a href="#toc28" tabindex="0">#N/A エラー：サーバーに接続できない</a></li><li><a href="#toc29" tabindex="0">#VALUE! エラー：トピックが解釈できない</a></li><li><a href="#toc30" tabindex="0">#REF! エラー：接続が途中で切れた</a></li><li><a href="#toc31" tabindex="0">データが更新されない</a></li><li><a href="#toc32" tabindex="0">セキュリティ警告でブロックされる</a></li><li><a href="#toc33" tabindex="0">トラブル切り分けの基本フロー</a></li></ol></li><li><a href="#toc34" tabindex="0">ExcelのRTD関数 よくある質問（FAQ）</a><ol><li><a href="#toc35" tabindex="0">Q1. RTD関数は Microsoft 365 でなくても使えますか？</a></li><li><a href="#toc36" tabindex="0">Q2. RTDサーバーは自分で作れますか？</a></li><li><a href="#toc37" tabindex="0">Q3. RTD関数とPower Queryはどちらを使うべきですか？</a></li><li><a href="#toc38" tabindex="0">Q4. RTD関数で取得した値を別のセルで計算に使えますか？</a></li><li><a href="#toc39" tabindex="0">Q5. RTD関数の更新でCPU使用率が高くなりすぎます。どう抑えればよいですか？</a></li><li><a href="#toc40" tabindex="0">Q6. ExcelファイルにRTD関数を残したまま閉じても問題ないですか？</a></li></ol></li><li><a href="#toc41" tabindex="0">まとめ</a><ol><li><a href="#toc42" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのRTD関数とは？RTDサーバーとリアルタイムデータ取得の仕組み</span></h2>



<h3 class="wp-block-heading"><span id="toc2">読み方と語源</span></h3>



<p class="wp-block-paragraph">RTD関数は「アール ティー ディー かんすう」と読みます。RTDは <strong>RealTimeData（リアルタイムデータ）</strong> の略です。外部プログラムから継続的にデータを受け取り、Excelのセル上に最新値を表示するための関数です。</p>



<p class="wp-block-paragraph">通常の関数が「呼び出されたタイミングで一度だけ計算する」のに対し、RTD関数は <strong>サーバー側からのプッシュ通知</strong> を待ち受けます。データが更新されるたびにセルを自動再計算する点が最大の特徴です。</p>



<h3 class="wp-block-heading"><span id="toc3">RTDサーバーとは何か</span></h3>



<p class="wp-block-paragraph">RTDサーバーは、Microsoft の <strong>COM（Component Object Model）</strong> という仕組みで作られた外部プログラムです。<code>IRTDServer</code> というインターフェースを実装することで、Excelからの接続要求に応答できるようになります。</p>



<p class="wp-block-paragraph">ExcelはCOMを通じてサーバーに「このトピックのデータがほしい」と伝えます。サーバーは値が変わるたびにExcelに通知を返します。この双方向通信のおかげで、Excelは画面を再読み込みすることなく最新値を保持できます。</p>



<h3 class="wp-block-heading"><span id="toc4">どんな業務シーンで使うのか</span></h3>



<p class="wp-block-paragraph">RTD関数が特に活躍するのは、以下のような「秒〜分単位でデータが変わる業務」です。</p>



<ul class="wp-block-list"><li>株価・為替・指数・先物・暗号資産のリアルタイム取得</li><li>製造ラインの温度・圧力・回転数などのセンサー値モニタリング</li><li>物流倉庫のタグ読み取り数や処理レーンの稼働状況</li><li>コールセンターの着信待ち件数・応対中件数の表示</li><li>スポーツのライブスコアや競技進行状況のダッシュボード</li></ul>



<p class="wp-block-paragraph">要するに「外部の何かが動き続けていて、その状態を一覧で見たい」シーンに向いています。</p>



<h3 class="wp-block-heading"><span id="toc5">対応バージョンと前提条件</span></h3>



<p class="wp-block-paragraph">RTD関数は <strong>Excel 2002 以降</strong> で利用できますが、いくつかの前提条件があります。</p>



<figure class="wp-block-table"><table><thead><tr><th>条件</th><th>内容</th></tr></thead><tbody><tr><td>OS</td><td>Windows 版 Excel のみ対応（Mac版は COM を持たないため非対応）</td></tr><tr><td>RTDサーバー</td><td>別途インストールまたは自作が必要</td></tr><tr><td>信頼設定</td><td>マクロセキュリティで COM サーバーの実行が許可されている必要あり</td></tr><tr><td>更新間隔</td><td>デフォルト2秒。<code>Application.RTD.ThrottleInterval</code> で変更可能</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">RTD関数だけを書いてもデータは取れません。<strong>「Excel + RTDサーバー」のセット</strong> で初めて機能する点を、最初に押さえておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc6">RTD関数の書式と引数の渡し方</span></h2>



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



<p class="wp-block-paragraph">RTD関数の構文はとてもシンプルです。ただし、第3引数以降の「トピック」がやや独特です。</p>



<pre class="wp-block-code"><code>=RTD(ProgID, Server, Topic1, [Topic2], ...)</code></pre>



<h3 class="wp-block-heading"><span id="toc8">引数一覧</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>内容</th></tr></thead><tbody><tr><td>ProgID</td><td>必須</td><td>RTDサーバーの <strong>ProgID</strong>（COMサーバーの識別子）を文字列で指定。例：<code>"MyCompany.StockRTD"</code></td></tr><tr><td>Server</td><td>必須</td><td>RTDサーバーが動作するコンピューター名。ローカルなら <code>""</code>（空文字）または省略可</td></tr><tr><td>Topic1</td><td>必須</td><td>取得するデータを特定する第1キー。証券コードや銘柄シンボルなど</td></tr><tr><td>Topic2〜</td><td>任意</td><td>取得するデータをさらに絞り込むための第2〜第28キー。「銘柄＋項目」のように複数キーで1データを特定する</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc9">ProgID とは何か</span></h3>



<p class="wp-block-paragraph">ProgID（Programmatic Identifier）は、COMサーバーごとに割り振られた <strong>一意の識別文字列</strong> です。形式は <code>Vendor.Component</code> または <code>Vendor.Component.Version</code> が一般的です。</p>



<p class="wp-block-paragraph">ProgID は通常、サーバー提供元のマニュアルや、Windowsレジストリの <code>HKEY_CLASSES_ROOT</code> 配下で確認できます。証券会社のRTDサーバーであれば、セットアップガイドに必ず記載されています。</p>



<h3 class="wp-block-heading"><span id="toc10">トピックの設計思想</span></h3>



<p class="wp-block-paragraph">トピックは「サーバー側で公開されているデータを特定するためのキー」です。1つのトピックで足りないケースも多く、たとえば株価サーバーなら「証券コード」と「項目名」の2つで1つの値を特定します。</p>



<pre class="wp-block-code"><code>=RTD(&quot;MyCompany.StockRTD&quot;, , &quot;7203&quot;, &quot;price&quot;)    → トヨタの現在値
=RTD(&quot;MyCompany.StockRTD&quot;, , &quot;7203&quot;, &quot;volume&quot;)   → トヨタの出来高
=RTD(&quot;MyCompany.StockRTD&quot;, , &quot;7203&quot;, &quot;bid&quot;)      → トヨタの買気配</code></pre>



<p class="wp-block-paragraph">トピックの組み合わせは <strong>サーバー側の仕様で決まっています</strong>。必ずサーバー提供元のドキュメントを確認してください。</p>



<h3 class="wp-block-heading"><span id="toc11">引数を渡すときの注意</span></h3>



<p class="wp-block-paragraph">引数の文字列は <strong>二重引用符で囲む</strong> 必要があります。セル参照を使う場合は引用符は不要です。</p>



<pre class="wp-block-code"><code>=RTD(A1, &quot;&quot;, B1, C1)</code></pre>



<p class="wp-block-paragraph">セル参照にしておくと、参照先の値を変えるだけで取得対象を切り替えられます。保守性が大幅に上がるため、実務では推奨の書き方です。</p>



<h2 class="wp-block-heading"><span id="toc12">RTD関数の使い方①｜基本的なRTDサーバー接続例</span></h2>



<p class="wp-block-paragraph">ここからは、実際にどのような数式を書いてRTDサーバーに接続するかを具体例で見ていきます。</p>



<h3 class="wp-block-heading"><span id="toc13">例1：ローカルのRTDサーバーから1つの値を取得する</span></h3>



<p class="wp-block-paragraph">もっともシンプルなパターンです。ローカルPCでサーバーが稼働している場合、<code>Server</code> 引数は空にします。</p>



<pre class="wp-block-code"><code>=RTD(&quot;MyCompany.StockRTD&quot;, , &quot;7203&quot;, &quot;price&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>値</th><th>意味</th></tr></thead><tbody><tr><td>ProgID</td><td>&#8220;MyCompany.StockRTD&#8221;</td><td>サーバーの識別子</td></tr><tr><td>Server</td><td>（省略）</td><td>ローカル実行</td></tr><tr><td>Topic1</td><td>&#8220;7203&#8221;</td><td>証券コード</td></tr><tr><td>Topic2</td><td>&#8220;price&#8221;</td><td>取得項目（現在値）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">サーバーが稼働していれば、セルに現在値が表示されます。データ更新のたびに自動で書き換わります。</p>



<h3 class="wp-block-heading"><span id="toc14">例2：リモートサーバーからデータを取得する</span></h3>



<p class="wp-block-paragraph">社内のデータ配信サーバーから値を引きたい場合は、<code>Server</code> 引数にコンピューター名を入れます。</p>



<pre class="wp-block-code"><code>=RTD(&quot;MyCompany.StockRTD&quot;, &quot;DATA-SERVER01&quot;, &quot;USDJPY&quot;, &quot;ask&quot;)</code></pre>



<p class="wp-block-paragraph">ホスト名解決ができる前提で、<code>DATA-SERVER01</code> というマシンのRTDサーバーに接続します。社内ネットワークのDNS設定やDCOM設定が必要なケースが多いので、情報システム部門と連携して進めましょう。</p>



<h3 class="wp-block-heading"><span id="toc15">例3：セル参照で動的にデータを切り替える</span></h3>



<p class="wp-block-paragraph">実務では、銘柄や項目名を <strong>入力セル</strong> に持たせる構成が便利です。</p>



<pre class="wp-block-code"><code>=RTD($A$1, $A$2, B3, C3)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>セル</th><th>入力例</th><th>意味</th></tr></thead><tbody><tr><td>A1</td><td>&#8220;MyCompany.StockRTD&#8221;</td><td>ProgID</td></tr><tr><td>A2</td><td>&#8220;&#8221;</td><td>サーバー（空＝ローカル）</td></tr><tr><td>B3</td><td>&#8220;7203&#8221;</td><td>証券コード</td></tr><tr><td>C3</td><td>&#8220;price&#8221;</td><td>項目名</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">このパターンなら、B列とC列を増やすだけで「銘柄一覧×複数項目」のリアルタイム表が完成します。</p>



<h3 class="wp-block-heading"><span id="toc16">例4：複数項目を横並びで表示する</span></h3>



<p class="wp-block-paragraph">トピック2を「項目名」にして、列方向に複数項目を並べる構成もよく使われます。</p>



<pre class="wp-block-code"><code>A列: 銘柄コード
B列: =RTD(&quot;MyCompany.StockRTD&quot;, , $A2, &quot;price&quot;)
C列: =RTD(&quot;MyCompany.StockRTD&quot;, , $A2, &quot;volume&quot;)
D列: =RTD(&quot;MyCompany.StockRTD&quot;, , $A2, &quot;change&quot;)</code></pre>



<p class="wp-block-paragraph">下方向にコピーするだけで、銘柄ごとの価格・出来高・前日比が一覧化されます。Excelの条件付き書式と組み合わせれば、値動きの大きな銘柄をハイライトする簡易ボードも作れます。</p>



<h3 class="wp-block-heading"><span id="toc17">更新頻度の調整</span></h3>



<p class="wp-block-paragraph">RTDの更新間隔はデフォルトで <strong>2秒</strong> に設定されています。頻繁な更新は画面のチラつきやCPU負荷を招くため、用途に応じて間隔を変更しましょう。</p>



<pre class="wp-block-code"><code>Application.RTD.ThrottleInterval = 2000  ' 2秒（デフォルト）
Application.RTD.ThrottleInterval = 5000  ' 5秒に変更
Application.RTD.ThrottleInterval = 0     ' サーバーからの通知を即時反映</code></pre>



<p class="wp-block-paragraph">このコードはVBAのイミディエイトウィンドウや起動マクロから実行できます。<code>0</code> を指定するとサーバー通知が来るたびに即座に再計算されます。CPU負荷とのトレードオフを意識して値を決めてください。</p>



<h2 class="wp-block-heading"><span id="toc18">RTD関数の使い方②｜DDE関数との比較と移行</span></h2>



<p class="wp-block-paragraph">リアルタイムデータ取得には、RTD登場以前から <strong>DDE（Dynamic Data Exchange）</strong> という仕組みも使われていました。古い証券アプリやレガシー業務システムには、いまも DDE 連携が残っています。</p>



<h3 class="wp-block-heading"><span id="toc19">DDEとRTDの違い</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>DDE</th><th>RTD</th></tr></thead><tbody><tr><td>通信方式</td><td>プロセス間通信（旧式）</td><td>COM ベースのプッシュ通知</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>Excelからの記述</td><td>リンク貼り付け（`=サーバー</td><td>トピック!項目`）</td><td>RTD関数</td></tr><tr><td>Microsoftの位置付け</td><td>レガシー扱い・推奨されない</td><td>リアルタイム連携の標準</td></tr><tr><td>サポート状況</td><td>Excel 2016 以降は既定で無効</td><td>現行バージョンで標準サポート</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">セキュリティ上の理由から、Excel 2016 以降は <strong>DDE が初期状態で無効化</strong> されています。DDE を有効にすると外部からの攻撃面が広がるため、MicrosoftはRTDへの移行を推奨しています。</p>



<h3 class="wp-block-heading"><span id="toc20">DDEからRTDへの移行イメージ</span></h3>



<p class="wp-block-paragraph">たとえば、古い DDE 形式のリンクが以下のように書かれていたとします。</p>



<pre class="wp-block-code"><code>=StockApp|Quote!7203</code></pre>



<p class="wp-block-paragraph">これと同等の情報をRTDで取得するなら、サーバー提供元が用意したRTDサーバーを介して次のような数式に置き換えます。</p>



<pre class="wp-block-code"><code>=RTD(&quot;StockApp.QuoteRTD&quot;, , &quot;7203&quot;, &quot;price&quot;)</code></pre>



<p class="wp-block-paragraph">DDE の <code>アプリ名|トピック!項目</code> 構造が、RTD の <code>ProgID + Topic1 + Topic2</code> に対応するイメージです。サーバー側のリプレースが必要なので個人で完結できる作業ではありません。ただし提供元がRTDサーバーを用意していれば、Excelファイル側の数式書き換えは比較的シンプルです。</p>



<h3 class="wp-block-heading"><span id="toc21">移行時のチェックリスト</span></h3>



<ul class="wp-block-list"><li>提供元が RTDサーバー版を提供しているか確認する</li><li>ProgID とトピック仕様のドキュメントを入手する</li><li>既存ファイルの DDE リンクを棚卸しする（<code>数式</code> → <code>名前の管理</code> などから検索）</li><li>試験用シートで小規模に RTD 化し、表示と更新を確認する</li><li>本番ファイルを段階的に置き換える</li></ul>



<p class="wp-block-paragraph">DDE のままでは将来のExcelアップデートで動かなくなるリスクがあります。レガシーリンクを抱えている現場は早めの移行計画を立てましょう。</p>



<h2 class="wp-block-heading"><span id="toc22">RTD関数の応用｜株価・為替・センサーデータのリアルタイム取得</span></h2>



<p class="wp-block-paragraph">ここでは、業界別の代表的な活用パターンを紹介します。RTDサーバーを「自分で書く」場合の参考にもなります。</p>



<h3 class="wp-block-heading"><span id="toc23">活用例1：株価・為替のダッシュボード</span></h3>



<p class="wp-block-paragraph">国内ネット証券のなかには、自社ツール経由でRTDサーバーを提供しているサービスがあります。FX業者の一部や、Bloomberg・LSEG（旧Refinitiv）などのプロ向け配信もRTDに対応しています。</p>



<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>A</td><td>銘柄コード（7203, 6758 など）</td><td>手入力</td></tr><tr><td>B</td><td>現在値</td><td><code>=RTD(ProgID, , A2, "price")</code></td></tr><tr><td>C</td><td>前日比</td><td><code>=RTD(ProgID, , A2, "change")</code></td></tr><tr><td>D</td><td>出来高</td><td><code>=RTD(ProgID, , A2, "volume")</code></td></tr><tr><td>E</td><td>アラート</td><td><code>=IF(ABS(C2)>=100, "★急変", "")</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">条件付き書式で「前日比がプラスなら緑、マイナスなら赤」と色分けすれば、視覚的にもわかりやすい簡易トレードボードになります。</p>



<h3 class="wp-block-heading"><span id="toc24">活用例2：製造現場のセンサーモニタリング</span></h3>



<p class="wp-block-paragraph">PLC（プログラマブルロジックコントローラ）や SCADA は、OPCサーバー経由で値を公開していることが多く、OPC-RTDブリッジを介すことでExcelから直接読み取れます。</p>



<pre class="wp-block-code"><code>A2: 設備ID（&quot;LINE-01-MOTOR&quot;）
B2: =RTD(&quot;OpcRtd.Server&quot;, , A2, &quot;Temperature&quot;)
C2: =RTD(&quot;OpcRtd.Server&quot;, , A2, &quot;Pressure&quot;)
D2: =RTD(&quot;OpcRtd.Server&quot;, , A2, &quot;RPM&quot;)</code></pre>



<p class="wp-block-paragraph">温度や圧力が閾値を超えたら背景色を赤に変えるだけで、現場の朝礼で見せられるリアルタイム監視シートが完成します。</p>



<h3 class="wp-block-heading"><span id="toc25">活用例3：自作RTDサーバーとの連携</span></h3>



<p class="wp-block-paragraph">社内システムやIoTデバイスからのデータをExcelに流したい場合、RTDサーバーを自作する選択肢もあります。Microsoftの公式ドキュメントには <code>IRTDServer</code> インターフェースの実装サンプルが用意されています。C# / VB.NET / VBA など複数の言語で記述できます。</p>



<p class="wp-block-paragraph">自作RTDサーバーから値を受け取る側のExcel数式は、市販製品と同じ書式です。</p>



<pre class="wp-block-code"><code>=RTD(&quot;MyOrg.SensorRTD&quot;, , &quot;SENSOR-001&quot;, &quot;value&quot;)
=RTD(&quot;MyOrg.SensorRTD&quot;, , &quot;SENSOR-001&quot;, &quot;status&quot;)</code></pre>



<p class="wp-block-paragraph">サーバー側で1秒ごとに <code>UpdateNotify</code> を呼ぶ実装にしておけば、Excel側でほぼ遅延なく値が更新されます。</p>



<h3 class="wp-block-heading"><span id="toc26">活用例4：VBAと組み合わせたアラート発火</span></h3>



<p class="wp-block-paragraph">RTDで取得した値をトリガーに、VBAで通知やログ保存を自動化することもできます。値が閾値を超えたタイミングでOutlookメールを送る、別シートにタイムスタンプ付きで履歴を残すといった処理が定番です。</p>



<pre class="wp-block-code"><code>Private Sub Worksheet_Calculate()
    Dim rng As Range
    Set rng = Me.Range(&quot;B2&quot;)
    If rng.Value &gt; 100 Then
        Application.EnableEvents = False
        Me.Range(&quot;D2&quot;).Value = &quot;★閾値超過 &quot; &amp; Now
        Application.EnableEvents = True
    End If
End Sub</code></pre>



<p class="wp-block-paragraph"><code>Worksheet_Calculate</code> イベントは、RTDによる再計算でも発火します。<code>EnableEvents = False</code> で囲んでイベントの無限ループを防ぐ点だけ注意してください。VBAのイベント設計をしっかり押さえたい場合は、<a href="https://mashukabu.com/excel-vba-automation-guide/">ExcelVBAの自動化ガイド</a> もあわせて参照してください。</p>



<h2 class="wp-block-heading"><span id="toc27">RTD関数でよくあるエラーと対処法（N/A・接続失敗・更新されない）</span></h2>



<p class="wp-block-paragraph">RTD関数のトラブルは「サーバー側」「Excel設定」「数式」「ネットワーク」のどこかに原因があります。症状別に切り分けていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc28">#N/A エラー：サーバーに接続できない</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処</th></tr></thead><tbody><tr><td>RTDサーバーが起動していない</td><td>サーバープログラムを起動。サービス化されている場合は <code>services.msc</code> で稼働状況を確認</td></tr><tr><td>ProgID が間違っている</td><td>レジストリ <code>HKEY_CLASSES_ROOT</code> で正確な ProgID を確認。typo がないかチェック</td></tr><tr><td>COM コンポーネントが未登録</td><td><code>regsvr32</code> で DLL を再登録。インストーラ付属のセットアップを再実行</td></tr><tr><td>32bit / 64bit の不一致</td><td>Excelのビット数とサーバーのビット数を揃える（混在不可）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc29">#VALUE! エラー：トピックが解釈できない</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処</th></tr></thead><tbody><tr><td>トピック名が辞書にない</td><td>サーバーのドキュメントで正しい名称を確認</td></tr><tr><td>引数の数や型が仕様外</td><td>引数を文字列として渡す。空セルを <code>""</code> に置き換える</td></tr><tr><td>データ型の変換に失敗</td><td>サーバー側の戻り値型を確認。<code>VALUE</code> 関数で明示的に数値化</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc30">#REF! エラー：接続が途中で切れた</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処</th></tr></thead><tbody><tr><td>サーバー側のクラッシュ</td><td>プロセスを再起動。イベントログでエラー詳細を確認</td></tr><tr><td>ネットワーク切断</td><td>ping や <code>Test-NetConnection</code> で経路を確認</td></tr><tr><td>DCOM 権限不足</td><td><code>dcomcnfg</code> でアクセス権・起動権を確認・付与</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc31">データが更新されない</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>計算モードが手動</td><td><code>数式</code> → <code>計算方法の設定</code> を「自動」に変更</td></tr><tr><td><code>ThrottleInterval</code> が長すぎ</td><td><code>Application.RTD.ThrottleInterval = 2000</code> で2秒に戻す</td></tr><tr><td>マクロセキュリティで COM がブロック</td><td><code>トラストセンター</code> → <code>マクロの設定</code> を確認</td></tr><tr><td>サーバーが Heartbeat を返していない</td><td>サーバー側ログで通知送信状況を確認</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc32">セキュリティ警告でブロックされる</span></h3>



<p class="wp-block-paragraph">「セキュリティに関する警告：COMサーバーをアクティブ化しようとしました」と表示される場合は、信頼できる発行元のサーバーであることを確認したうえで許可してください。出所不明なRTDサーバーは絶対に有効化しないことが鉄則です。</p>



<h3 class="wp-block-heading"><span id="toc33">トラブル切り分けの基本フロー</span></h3>



<ol class="wp-block-list"><li><strong>サーバー単体で動くか確認</strong>：付属のテストツールがあれば先にそちらで疎通を取る</li><li><strong>別の簡単なトピックで試す</strong>：複雑な数式の前に「サーバー側のサンプルトピック」で接続だけ確認</li><li><strong>同じPCでローカル接続を試す</strong>：リモート問題かExcel側問題かの切り分けに有効</li><li><strong>イベントログ・サーバーログを見る</strong>：Windowsの「アプリケーション」ログにエラーが出ていることが多い</li></ol>



<h2 class="wp-block-heading"><span id="toc34">ExcelのRTD関数 よくある質問（FAQ）</span></h2>



<h3 class="wp-block-heading"><span id="toc35">Q1. RTD関数は Microsoft 365 でなくても使えますか？</span></h3>



<p class="wp-block-paragraph">はい、使えます。RTD関数は <strong>Excel 2002 以降の全Windows版</strong> に標準搭載されています。Microsoft 365 サブスクリプションは必須ではありません。ただし <strong>Mac版Excelでは利用不可</strong> です。MacにはWindowsと同じCOM基盤が存在しないためです。Macで類似のことをしたい場合は、Power QueryでのAPI定期取得や、Office Scriptsでの代替を検討してください。</p>



<h3 class="wp-block-heading"><span id="toc36">Q2. RTDサーバーは自分で作れますか？</span></h3>



<p class="wp-block-paragraph">はい、作れます。Microsoftの公式ドキュメントに <code>IRTDServer</code> インターフェース仕様が公開されており、C# / VB.NET / Delphi などで実装できます。ただしCOM登録・DCOM設定・ビット数管理など、Excel関数を「書く」よりも前段で覚えることが多めです。自社でIoTデータをExcelに流したいといった要件であれば、社内の開発リソースと相談しながら段階的に進めるのが現実的です。</p>



<h3 class="wp-block-heading"><span id="toc37">Q3. RTD関数とPower Queryはどちらを使うべきですか？</span></h3>



<p class="wp-block-paragraph">更新の <strong>粒度</strong> で使い分けます。秒〜数秒単位で値が変わるデータ（株価・為替・センサー）はRTD関数が向きます。数分〜数時間に1回の更新で十分なデータ（Web上のCSV、社内DBのスナップショット）はPower Queryのほうが扱いやすく、可視化や変換の自由度も高くなります。ファイルを開いたときの自動更新でよければPower Query、開きっぱなしで流し見したいならRTD、と覚えておくと選びやすいです。</p>



<h3 class="wp-block-heading"><span id="toc38">Q4. RTD関数で取得した値を別のセルで計算に使えますか？</span></h3>



<p class="wp-block-paragraph">使えます。RTDが返す値は通常のセル値と同じように扱えます。四則演算・IF判定・条件付き書式・グラフのデータソースなど、Excelのあらゆる機能と組み合わせられます。値が更新されるたびに参照先の数式も再計算されるので、リアルタイム集計のダッシュボードが組みやすいのがRTDの強みです。</p>



<h3 class="wp-block-heading"><span id="toc39">Q5. RTD関数の更新でCPU使用率が高くなりすぎます。どう抑えればよいですか？</span></h3>



<p class="wp-block-paragraph">主に3つの方法で抑えられます。まず <code>Application.RTD.ThrottleInterval</code> を 2000〜5000 程度に引き上げ、更新間隔を広げます。次に、不要なトピックの購読を減らします。表示しなくなった列のRTD関数は削除するか、別シートに退避させてください。さらに、サーバー側にThrottling機能がある場合は、サーバー側で配信頻度を間引く設定を行うのも有効です。</p>



<h3 class="wp-block-heading"><span id="toc40">Q6. ExcelファイルにRTD関数を残したまま閉じても問題ないですか？</span></h3>



<p class="wp-block-paragraph">問題はありません。ただし次回ファイルを開いたときに、RTDサーバーが稼働しているマシンと再接続できる状態である必要があります。サーバーが停止している環境でファイルを開くと、セルに <code>#N/A</code> が並ぶことになります。配布用のファイルでRTD関数を含める場合は、サーバーがない閲覧者向けに <strong>値貼り付けのスナップショットシート</strong> を別途用意しておくと親切です。</p>



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



<p class="wp-block-paragraph">RTD関数のポイントを整理します。</p>



<ul class="wp-block-list"><li>RTD関数は、外部の <strong>RTDサーバー</strong> と COM 通信し、リアルタイム値をExcelセルに表示する関数</li><li>構文は <code>=RTD(ProgID, Server, Topic1, [Topic2], ...)</code> のシンプル3要素＋追加トピック</li><li>ProgID とトピックの仕様は <strong>サーバー提供元のドキュメント</strong> が一次情報。まずはそこを読む</li><li>DDE は既定で無効化されており、MicrosoftはRTDへの移行を推奨している</li><li>株価・為替・センサー・物流・コールセンターなど、秒単位で変わるデータの表示に最適</li><li>エラーの切り分けは「サーバー → COM登録 → 数式 → ネットワーク → セキュリティ設定」の順</li><li>Macでは使えない。MacならPower QueryやOffice Scriptsでの代替を検討する</li></ul>



<p class="wp-block-paragraph">RTD関数はやや専門性が高いものの、対応するRTDサーバーさえあれば、Excelを <strong>リアルタイムダッシュボード</strong> として活用できる強力な機能です。最初の一歩は、自社で使っている業務システムやデータプロバイダーが「RTD対応」を謳っているかを確認することです。対応していれば、本記事の数式テンプレートをコピペするだけで、すぐに値が流れ込んでくるはずです。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-alphabetical-order/">アルファベット順 Excel関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-list-by-function/">機能別 Excel関数一覧</a></li><li><a href="https://mashukabu.com/excel-vba-automation-guide/">ExcelVBAの自動化ガイド</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-now/">ExcelのNOW関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-rtd/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
