VBA投資楽天RSS2

RssOrderStatusがうまく動作しない

VBA
スポンサーリンク

楽天マーケットスピード2 RSSで注文キャンセル処理に使用しようとしたが…

 RssOrderStatusは注文状況を取得する関数だが、動作ログを見ていると注文キャンセル処理が正常に動作していない。というより注文を出すと100%キャンセル処理しようとしている。構造上それでいいのだが、さすがにエラーが出ており、気持ち悪いので原因を探り、解決することにした。が、なかなかしっぽがつかめない。

原因:注文と同時にidをセルへ書き込んでいた。

 この関数は自動更新という取説説明の為、注文処理の最後に、RssOrderStatusに対するidを対象のセルに書き込んでいた。どうも注文が有効になってからでないと自動更新の動作にすらならないようで、注文と同時では注文が有効になっておらず、自動更新が始まらないため、RssOrderStatusが機能していない状態だった。機能しており、注文が有効な状態であれば、2を表示するため、2の状態で特定の時間が経過すると注文キャンセルを出すようにしていたが、そもそも2が表示されず、毎回キャンセルとなっていた。Application.Ontimeを使用し、数秒後にRssOrderStatusに対するidを対象のセルに書き込みに行くようにすることで動作するようになった。
 デバッグしてて厄介に思ったのがこの関数の動きが遅い。時間外ですらそう思うのだからザラ場だとどうなんだろうか?Excelの各種設定から更新周期を早くすることで、この関数の動きも早くなる。逆に遅くすると一緒に遅くなるようなので注意。

コメント

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