[XL2002] RTD 関数の設定および使用方法

文書翻訳 文書翻訳
文書番号: 289150 - 対象製品
この記事は、以前は次の ID で公開されていました: JP289150
すべて展開する | すべて折りたたむ

目次

概要

Microsoft Excel 2002 には、新しいワークシート関数 RTD (RealTimeData) が用意されています。この関数を使用すると、COM (Component Object Model) オートメーション サーバーを呼び出して、リアル タイムにデータを取得できます。この資料では、RTD 関数が提供する新しい機能について説明します。

詳細

リアル タイムに更新されるデータ (財務データ、科学データなど) を含むブックを作成する必要がある場合、RTD ワークシート関数を使用できます。旧バージョンの Excel では、このような必要があった場合には DDE (Dynamic Data Exchange) が使用されます。一方、COM テクノロジに基づく RTD 関数は、堅牢性、信頼性、および利便性の点で優れています。Excel でリアルタイムなデータを使用できるかどうかは、RTD サーバーの可用性に依存します。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 〜 28 個までトピックを使用できますが、少なくとも 1 つのトピックは必ず指定します。

RTD の使用

RTD 関数の例として、同時に行われるいくつかのレースに出場中のランナーに関する連続データを提供するサーバーから、データを取得する場合を考えます。このサーバーは、RaceReport.dll という名前のダイナミック リンク ライブラリ (DLL) として提供され、ユーザーのコンピュータにインストールされており、そのセットアップ時に COM アドインとして登録されていると仮定します。このサーバーに対して使用できる RTD 関数の一般的な形式は、以下のとおりです。
=RTD("MyRTDServerProdID","MyServer","RaceNum","RunnerID","StatType")
RaceNum、RunnerID、および StatType の各トピックは、対象のレース、対象のランナー、および関数の特定の用途に応じた種類のデータをそれぞれ識別します。

ユーザーがセルを選択し、レース番号 2、ランナー番号 16 に関する現在の経過時間を確認するために、セルに次の数式を入力します。
=RTD("ExcelRTD.RaceReport","","2","16","Time")
トピック数および関連データの種類は、COM サーバーの開発者によって決められています。たとえば、次の RTD 関数を使用した場合、レースレポート用サーバーからは異なるデータが提供されます。
=RTD("ExcelRTD.RaceReport","","3","25","Position")
この場合、レース番号 3、ランナー番号 25 の現在地を示すデータが返されます。

このように、ブック全体で同じ関数をさまざまに使用して、同じサーバーから、すべて自動的に更新される各種データを取得できます。

使用を簡略化するラッパー

RTD 関数は、Microsoft Visual Basic for Applications のユーザー定義関数 (UDF) の内部で使用できます。その際、そのユーザー関数は、RTD 関数のラッパーになります。この方法を使用すると、RTD サーバー名および ProgID の詳細をユーザーの目から隠すことができ、ユーザーは自分にとって重要なデータにのみ焦点を絞れるので便利です。

たとえば、前の例では、ユーザーには GetTime(RunnerID) および GetPosition(RunnerID) の 2 つの関数が提供されています。これらの関数では、ユーザーは常に同じサーバーおよびレース番号を使用することが前提であるため、特定のランナーの ID を指定するだけで、そのランナーの経過時間および現在地に関する各データを取得できます。

計算

RTD は、Excel がアイドル状態のときにデータを更新するため、Excel が手動計算モードの場合は、RTD を使用してデータ取得を継続できます。その場合、新規データはキャッシュされ、手動計算の実行には現在の値が使用されます。

セキュリティ

RTD サーバーは、Excel のセキュリティ機能ではマクロとして見なされます。つまり、セキュリティが [高] に設定されている場合、RTD サーバーは、デジタル署名された信頼性のあるものでない限り使用できず、そのデータに依存するセルは次のように表示されます。
#N/A
セキュリティが [中] に設定されている場合、RTD 関数を使用するブック (ファイル名) を開くと、次のエラー メッセージが表示されます。
ファイル名 はマクロを含んでいます。
マクロにはウイルスが含まれている可能性があります。マクロを無効にすると安全ですが、マクロが適正な場合、機能が使えなくなります。

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 289150 (最終更新日 2001-03-28) をもとに作成したものです。

プロパティ

文書番号: 289150 - 最終更新日: 2004年6月15日 - リビジョン: 1.0
この資料は以下の製品について記述したものです。
  • Microsoft Excel 2002 Standard Edition
キーワード:?
kbhowto kbinfo kbdta KB289150
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com