RTD関数の使い方|RTDサーバーからリアルタイムデータを取得する

スポンサーリンク

「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サーバーは以下の方法で用意します:

  1. 証券会社・データプロバイダーが提供するRTDサーバーを使う
  • MT4/MT5対応の国内FX業者の一部がRTDサーバーを提供しています
  • ブルームバーグやロイターなどの金融データサービスもRTDに対応しています
  1. 自作する

使い方の例

例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/ARTDサーバーが起動していないRTDサーバープログラムを起動してから再試行する
#N/AプログラムIDが間違っているRTDサーバーの正確なProgIDを確認する
#VALUE!トピックが存在しない対応するトピック名をRTDサーバーのドキュメントで確認する
#REF!サーバー接続が切断されたネットワーク接続とサーバーの稼働状況を確認する

まとめ

RTD関数のポイントをまとめます。

  • RTD関数はRTDサーバーと通信してリアルタイムデータをExcelセルに表示する
  • プログラムID・サーバー名・トピックの3要素で取得するデータを指定する
  • RTDサーバーが必須のため、まずサーバーの準備が必要
  • 金融データの取得や製造設備のモニタリングなど、リアルタイム性が求められる場面で活躍する

RTD関数はやや専門性が高い関数ですが、対応するRTDサーバーさえあれば、Excelをリアルタイムダッシュボードとして活用できます。使用するRTDサーバーのドキュメントでProgIDとトピック名を確認するところから始めてみてください。


関連記事

タイトルとURLをコピーしました