リアルタイムの市場データへの dde リンクを含む Excel シートがあります。私はタイマーを使って 1 秒ごとに dde の価格を監視しています。その後、一定の条件が満たされたときに注文を送信します。途中で DoEvent を使用して無限ループを試しました。これは 5 秒間機能し、その後ワークブックをフリーズします。
dde 更新の変更に対応する方法はありますか? 変更イベントはそれらを検出しません。ユーザーが手動で変更したことを検出するだけです。
条件付き書式を使用している場合、そのイベントを取得する方法があると言われました。したがって、条件が満たされたときに真になるセル式を作成し、真のときにそのセルを何らかの書式に条件付きで書式設定してから、書式変更イベントを取得できます。それは可能ですか?もしそうならどのように。任意の提案をいただければ幸いです。
明確にするために:株式を取引するための注文を送信するイベントをVBAで取得したいと考えています。私が今これを行っている方法は、トリガー列で真のセルを探してすべての行をループするタイマーを使用することです。見つかったら、その行のフラグをオフにし (true 条件を false に設定)、注文を送信します。
問題は、動きの速い株式にとって 1 秒が永遠に続くことです。そのため、トリガー列のセルが true になったときに VBA でイベントをスローする必要があるため、タイマー クラスの 2 番目の間隔を待たずにすぐに応答できます。
私の知る限り、1 秒未満の値でタイマーを呼び出すことはできません。ミリ秒を使用できれば、問題は解決します。10 ミリ秒ごとにリストをループするだけです。
私の知る限り、VBA で別のスレッドを作成することはできません。可能であれば、無限ループを作成し、10 ミリ秒程度の反復ごとにスリープ状態にします。
私の知る限り、MSDN はサポートされなくなったと言っているので、dde を VBA や .net に直接取り込むことはできません。
これが明確になることを願っています。すべての提案をいただければ幸いです。