Excel で RTD 関数をセットアップして使用する方法

注意

Office 365 用リソース は、 エンタープライズ向け Microsoft 365 アプリに名前変更されています。 この変更の詳細については、 このブログの投稿を参照してください。

概要

注意

RealTimeData (RTD) 関数のパフォーマンスは、Excel M365 version 2002 以降で大幅に強化されています。 詳細については、「 Excel のパフォーマンスと制限の改善点」を参照してください。

この記事では、RealTimeData (RTD) 関数が提供する機能について説明します。 Microsoft Office Excel には、RealTimeData (RTD) というワークシート関数が用意されています。 この関数を使用すると、コンポーネントオブジェクトモデル (COM) オートメーションサーバーを呼び出して、リアルタイムでデータを取得することができます。

財務データや科学的なデータなど、リアルタイムで更新されたデータを含むブックを作成する必要がある場合は、RTD ワークシート関数を使用できます。 以前のバージョンの Excel では、動的データ交換 (DDE) がその目的で使用されていました。 RTD 関数は COM テクノロジに基づいており、堅牢性、信頼性、利便性の点でメリットがあります。 RTD は、RTD サーバーが使用可能であることによって、Excel でリアルタイムデータを利用できるようにします。 RTD サーバーの作成方法の詳細については、「関連情報」セクションを参照してください。

RTD 関数は、ブックで使用するために、RTD サーバーからデータを取得します。 関数の結果は、サーバーから新しいデータが利用可能になると、ブックがそれを受け入れることができるときに更新されます。 サーバーは、Excel がアイドル状態になるまで待機してから更新します。 これにより、Excel が更新プログラムを受け入れることができるかどうかを判断する必要があります。 RTD 関数は、ワークシートが再計算されたときにのみ更新されるため、この点を考慮してください。

RTD 関数は、サーバー上のデータへのリンクを提供しますが、他のワークシートまたはブック内のセルへの参照と同じリンクの種類ではありません。 たとえば、ブックで RTD 関数を使用した場合、ブックを開いたときにリンクスタートアップメッセージは表示されず、[リンクの編集] ダイアログボックスで RTD 関数の状態を管理することもできません。

構文

RTD 関数では、次の構文を使用します。

= RTD (RealTimeServerProgID、ServerName、Topic1、[Topic2]、...)

関数の引数は次のとおりです。

  • RealTimeServerProgID

    ローカルシステムにインストールされている RTD サーバーのプログラム ID を表す文字列。 これは通常、セットアップ手順によって、または RegSvr32 を使用して登録された COM アドインです。 RealTimeServerProgID は必須の引数です。

  • ServerName

    RTD サーバーが実行されているサーバーの名前を表す文字列。 RTD サーバーがローカルで実行されている場合、ServerName は空の文字列 ("") であるか、または省略されている必要があります。

  • Topic1, [Topic2], ...

    取得するデータを決定する文字列。 使用できるトピックは1つだけですが、1つのトピックのみが必要です。

RTD の使用

RTD 関数の例として、いくつかの同時競合でランナーの継続的なデータを提供するサーバーから情報を取得することを検討してください。 サーバーが RaceReport.dll という名前のダイナミックリンクライブラリ (DLL) として提供されており、ユーザーのコンピューターにインストールされており、独自のセットアッププロセスによって COM アドインとして登録されているとします。 このサーバーで使用される RTD 関数の一般的な形式は、次のようになります。

= RTD ("MyRTDServerProdID"、"MyServer"、"RaceNum"、"Runん Id"、"StatType")

ここで、RaceNum、Runの Id、および StatType は、利息の競合、データが必要なランナー、および関数の特定の使用に関するデータの種類を決定します。

ここでは、セルを選択し、次の数式を入力します。

= RTD ("ExcelRTD"、""、"2"、"16"、"Time")

を使用して、ランナー番号16の現在の経過時間 (レースナンバー 2) を確認します。 トピックの数と関連データの性質は、COM サーバーの開発者によって決定されます。 たとえば、次の RTD 関数を使用すると、レポートサーバーが異なるデータを提供する場合があります。

= RTD ("ExcelRTD"、""、"3"、"25"、"Position")

この場合、返されるデータは、レースナンバー3のランナー番号25の現在の位置を示します。

この方法では、同じサーバーの同じ関数を、同じサーバーの異なるデータを取得するために、ブック全体で異なる方法で使用できます。これらはすべて自動的に更新されます。

使いやすくするラッパー

RTD 関数は、Microsoft Visual Basic for Applications のユーザー定義関数 (Udf) の内部で使用できます。 これらは、RTD 関数のラッパーとなります。 この方法は、ユーザーが RTD サーバー名と ProgID の詳細からシールドユーザーにとって役立つものであり、ユーザーが重要なデータのみに焦点を当てることができるようにするために役立ちます。

たとえば、上記のシナリオでは、ユーザーには、GetTime (RunGetPosition Id) と (Run Id) という2つの関数が提供されます。 これらの関数は、ユーザーが常に同じサーバーと競合番号を処理することを前提としています。 そのため、ユーザーはランナーの ID を指定するだけで、ランナーの経過時間と位置に基づいて現在のデータを受け取ることができます。

計算

RTD は、Excel がアイドル状態のときにデータを更新するので、Excel が手動計算モードの場合は、引き続き情報を受け取ります。 このイベントでは、新しいデータがキャッシュされ、手動計算が実行されるときに現在の値が使用されます。

セキュリティ

RTD サーバーは、デジタル署名されている必要があります。 RTD サーバーがデジタル署名されていない場合は、サーバーが読み込まれず、RTD サーバーを参照しているセルに #N/aが表示されます。

Microsoft Office Excel 2007 の場合は、セキュリティセンターを使用してセキュリティ設定を確認できます。 これには、[ Excel のオプション] ダイアログボックスの [セキュリティセンター ] タブからアクセスできます。

Microsoft Office Excel 2003 および Microsoft Excel 2002 では、Excel でマクロのセキュリティ設定を調整することによって、読み込み動作を変更できます。

関連情報

RTD および Excel のセキュリティの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

286259セキュリティ設定および Excel RealTimeData サーバー

RTD サーバーの作成の詳細については、次の記事番号をクリックして、マイクロソフトサポート技術情報の記事を参照してください。

285339 Excel 用の RealTimeData サーバーを作成する方法