「Excelで株価や為替をリアルタイムに取得したい」「外部システムのデータを自動更新させたい」――こうした要件に対応するのが RTD関数 です。
RTD(RealTimeData)は、外部のRTDサーバーと通信してデータをリアルタイムに取り込む仕組みで、金融系や製造業の現場での利用が多い関数です。仕組みを理解すれば、業務システムとExcelをつなぐ強力なツールになります。
この記事では引数の意味、RTDサーバーの概要、実務での活用例と注意点を解説します。
RTD関数とは?
読み方と語源
「アール ティー ディー」と読みます。RTDは Real-Time Data(リアルタイムデータ) の略で、外部プログラムからリアルタイムにデータを受け取るための関数です。
できること
RTDサーバーと呼ばれる外部プログラムに接続し、リアルタイムで更新されるデータをセルに表示します。
- 株価・為替・指数などの金融データをリアルタイム取得
- IoTデバイスや製造設備のセンサーデータの受信
- 業務システムのリアルタイムデータとの連携
対応バージョン:Excel 2003以降(Windows版のみ対応。Mac版は非対応)
重要な前提:RTD関数を使うには、別途 RTDサーバープログラム が必要です。RTDサーバーなしでは使用できません。
RTD関数の書き方
基本構文
=RTD( プログラムID, サーバー, トピック1, [トピック2], ... )
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| プログラムID | 必須 | RTDサーバーのProgIDを指定します(例:"ExcelRTD.MyServer") |
| サーバー | 必須 | RTDサーバーが動作するコンピューター名を指定します。ローカルの場合は "" または省略 |
| トピック1 | 必須 | 取得するデータのキー(データ名)を指定します |
| トピック2〜 | 任意 | 追加のデータキーを指定できます(最大253個まで)。複数のキーで1つのデータを特定します |
RTDサーバーとは?
RTDサーバーの仕組み
RTDサーバーは COM(Component Object Model) という技術を使って作られた外部プログラムです。ExcelはCOMを通じてRTDサーバーと通信し、データの更新を受け取ります。
データが更新されるたびに、Excelのセルが自動的に再計算されます。これが「リアルタイム」と呼ばれる理由です。
RTDサーバーの入手・作成方法
RTDサーバーは以下の方法で用意します:
- 証券会社・データプロバイダーが提供するRTDサーバーを使う
- MT4/MT5対応の国内FX業者の一部がRTDサーバーを提供しています
- ブルームバーグやロイターなどの金融データサービスもRTDに対応しています
- 自作する
- .NETやVBAを使ってCOMサーバーを実装します
- Microsoftのドキュメントを参照してください(Excel RTD サーバーの作成方法)
使い方の例
例1:ローカルのRTDサーバーからデータを取得する
=RTD("mycompany.StockRTD", , "7203", "price")
- プログラムID:
"mycompany.StockRTD" - サーバー:省略(ローカルで実行中)
- トピック1:
"7203"(証券コード) - トピック2:
"price"(取得するデータ項目)
ローカルで実行中のRTDサーバーから、指定した証券コードの株価を取得します。
例2:セル参照で動的に指定する
=RTD(B1, B2, B3, B4)
- B1:プログラムID
- B2:サーバー名(ローカルなら空欄)
- B3:トピック1
- B4:トピック2
セルの値を変えるだけで取得対象を切り替えられるので、管理しやすくなります。
例3:複数のデータを取得する
同じRTDサーバーから複数の項目を取得する場合、それぞれのセルに異なるトピックを指定します。
=RTD("mycompany.StockRTD", , "7203", "price") → 株価
=RTD("mycompany.StockRTD", , "7203", "volume") → 出来高
=RTD("mycompany.StockRTD", , "7203", "change") → 前日比
実務での活用例
活用例1:株価ダッシュボードの構築
FX会社や証券会社が提供するRTDサーバーに接続し、複数の銘柄の価格・変動率を一覧表示するダッシュボードを作成できます。Excelのグラフと組み合わせると、リアルタイムで更新されるチャートも実現できます。
活用例2:製造現場の設備モニタリング
PLCやSCADAシステムがRTDサーバーを提供している場合、設備の稼働状況・温度・圧力などをExcelで一元管理できます。異常値を条件付き書式でアラート表示することで、簡易モニタリングシートが完成します。
活用例3:VBAとの組み合わせ
RTDでリアルタイムに取得したデータをVBAで処理し、閾値を超えた場合にメール通知やログ保存を自動実行する仕組みも構築できます。
注意点と制限
- RTDサーバーが必須:サーバープログラムがインストールされていない環境では
#N/Aが返ります - Windows版Excelのみ対応:Mac版Excelでは使用できません
- ネットワーク遅延の影響:リモートサーバーの場合、ネットワーク状況によってデータ更新が遅れることがあります
- セキュリティ設定:COMサーバーの実行にはExcelのマクロセキュリティ設定が関係します。信頼できるRTDサーバーのみ使用してください
よくあるエラーと対処法
| エラー | 原因 | 対処法 |
|---|---|---|
#N/A | RTDサーバーが起動していない | RTDサーバープログラムを起動してから再試行する |
#N/A | プログラムIDが間違っている | RTDサーバーの正確なProgIDを確認する |
#VALUE! | トピックが存在しない | 対応するトピック名をRTDサーバーのドキュメントで確認する |
#REF! | サーバー接続が切断された | ネットワーク接続とサーバーの稼働状況を確認する |
まとめ
RTD関数のポイントをまとめます。
- RTD関数はRTDサーバーと通信してリアルタイムデータをExcelセルに表示する
- プログラムID・サーバー名・トピックの3要素で取得するデータを指定する
- RTDサーバーが必須のため、まずサーバーの準備が必要
- 金融データの取得や製造設備のモニタリングなど、リアルタイム性が求められる場面で活躍する
RTD関数はやや専門性が高い関数ですが、対応するRTDサーバーさえあれば、Excelをリアルタイムダッシュボードとして活用できます。使用するRTDサーバーのドキュメントでProgIDとトピック名を確認するところから始めてみてください。
