私は、Excel (Excel RTD 経由) に接続して、シートにリアルタイムで価格を表示する取引 (ソフトウェア) プログラムを持っています (計算もいくつか行います)。しかし、私がまったく無視している理由により、常にではありませんが、非常に頻繁に、シートに表示される価格がソフトウェアに表示される価格に比べて若干遅れています。Excel に表示される価格の遅延は、最大で数分かかる場合があります。Excel RTD はリアルタイムでデータを提供するはずなので、情報が多すぎる場合はデータをどこかに保存しているようです。Excel とソフトウェア間のリンクを無効にすると、シート上の価格が数分間更新され続けます (この「数分間」は、Excel とソフトウェア間の遅延に相当します)。
Excel RTD がなぜこんなに遅れて価格を表示するのか分からないので、これは本当にイライラします。私のシートには 300 個未満のセルしか入力されていませんが、これは私にとってはまったく問題ではありません。もちろん、各更新を取得するために、Excel のスロットル制限は 0 に設定されています。また、ファイルを から に変更しました.xlsx
が.xlsb
、ファイル サイズ以外は何も変わりませんでした。
Excel がデータをどこかに保存しているように見えますが、私はこれを望んでおらず、リアルタイムのデータが欲しいのです。
- 最新バージョンのOfficeを使用する -
何が起こっているのですか? Excel でデータをリアルタイムで取得するにはどうすればいいですか?
答え1
Microsoft Excel の RTD 間隔スロットルを調整することを検討してください。Excel オブジェクト モデルを通じてスロットル間隔を高く設定するには、次の操作を行います。
- Excel で、Visual Basic エディターに移動します (ALT + F11 キーを押すか、マクロメニュー ([ツール] メニュー) から [Visual Basic エディター] をクリックします)。
- イミディエイト ウィンドウ (Ctrl + G を押すか、[表示] メニューの [イミディエイト ウィンドウ] をクリック) に次のコードを入力します: Application.RTD.ThrottleInterval = 1000
- カーソルが入力した行にあることを確認して、Enter キーを押します。
- 正しく設定されていることを確認するには、イミディエイト ウィンドウに次の if コード行を入力します: ?Application.RTD.ThrottleInterval
- この行の末尾にカーソルを置いて Enter キーを押すと、1000 と表示されます。これで、スロットル間隔が正しく設定されていることがわかります。
この記事を読んで、役立つかどうかを確認してください。 https://docs.microsoft.com/en-us/previous-versions/office/developer/office-xp/aa140060(v=office.10)#odc_xlrtdfaq_howconfigrtdthrottle