
楽天のRSSとGMO証券のAPIを使用し、エクセルVBAにて自動売買をしているのですが、RSSのデータを受信出来ていない事が多々あり非常に困っております。
どういう事かと申しますと、3台のPCで自動売買エクセルを起動し1秒ごとに銘柄情報を監視し、条件を満たした銘柄を売買すると言うものなのですが、肝心のデータがRSSから受信出来ませんと、売買条件を満たせ無い為、売買出来ないと言う状況です。
3台起動していても、平均すると1.2台程度の稼動率かと思います。
そこで、エクセルVBAを使用し、RSSから確実にデータ受信する方法をご存知の方がいらっしゃいましたらアドバイス頂ければと思います。
個人的には、データ受信要求を投げてから、ある一定時間以上応答が無い場合、再度RSSからデータ受信要求を投げる。
もしくは、RSS.exeを再起動すると言う方法になるかと思います。
エクセルVBAにて現状の改善方法をご存知の方、宜しくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
先にダメになっているのは RSSの方なのでしょうか
もし毎秒受信して たくさんのセルを更新して たくさん計算するなら
Excel側は処理できているのでしょうか
Excelが先にギブアップして
RSSが送っているデータを受信できない
受信処理をExcelができない ということはありませんか
シートとコードを見せてほしいところですが
いろいろ秘密もたくさんあるかもしれないので
もし可能なら見せてください
下記は参考です
シートの更新の方法でExcelの負荷が変わります
http://officetanaka.net/excel/vba/speed/index.htm
http://www.microsoft.com/japan/windowsserver2003 …
単純には セルを配列として取り込んで 計算は配列で行い
http://officetanaka.net/excel/vba/speed/s11.htm
極力セルにアクセスする回数を減らし負荷を下げます
ここまでくると
シートに意味があるか シートは必要か ということになります
シートに書くのをやめればコード上の処理だけになります
自動運転ならシート表示は最低限でいいはずです
もし可能なら データはExcelではなく 外に置きます
シートにデータを置かないで下さい シートは複雑で多岐にわたる
属性を持っているため使うとそれだけで負担になります
MySQLなどDB またはTXT,CSVなどを置き場所にして
必要なデータは外に 処理/判断はコードで
表示は最低限 ユーザフォームやHTMLやExcel以外にします
もし可能なら Excelから離れて VBS WSH HTA を使用して
VBAの知識を使って 別のものを作成することをおすすめします
Excelの負担を回避してVBAの資産を有効利用できる良い方法だと思います
くわしい内容が分かれば詳しいサンプルを用意しますが
どの程度の処理内容が理解可能かによります
VBAはくわしいのでしょうか
この回答への補足
>>続きです。
anotherone さんのアドバイスを元にエクセルの修正を行い、不要な処理を除くよう対策をさせて頂きたいと思います。
今までは、1秒ごとにVBAにて監視(300銘柄×11アイテム=MAX:3300セル)しており、CPUリソースの消費率は、20~30%程度でしたので、CPUネック、もしくは、エクセルがハングしてデータ受信出来ていないと言う事は想定外でしたが、アドバイス頂いたように不要な監視セルを削除したり、不要な処理を省く事で動きは以前よりかなり軽くなったように思いますので、この対策で、エクセルハングは起こり辛くなったように思います。
ちなみに、自分は、データベースエンジニアをしており、VBAやVB.netは最近勉強しはじめたばかりですので、難しい事は分かりません(Win32API使う等)が、基本的なプログラミングの部分は問題無いと思います。
また、最終的には、VB.netとデータベースと連携したものを作ろうと考えておりますが、まずは、自分の思ったようにプログラムが動く事が最低条件かと思っておりますので、この問題をまずは解決したいと思っておりますので、お手数をおかけ致しますが、ご協力よろしくお願い致します。
anotherone さん 丁寧なアドバイスありがとうございます。
問題点がうまく伝わっていないようでしたので、再度、記載させて頂きます。
9時にマーケットがオープンしその直後にRSS関数のセルに値が入り更新されると言うのが通常の動きですが、今の問題は9時を過ぎてもRSS関数のセルの値が一切変わらず、更新されないと言う事が問題の部分となります。
原因は、エクセルハング、もしくは、RSS.exeからデータ配信がされない(RSS.exeのハング)もしくは、RSS内部の処理でタイムアウト値が設定されておらず、データ受信待ちのまま待機し続けていると言った所かと思います。
なんとなくの予想は可能ですが、実際何が原因で今の問題が発生しているか全く分からない為、問題の切り分け、及び、対処を行いたいと思っております。
問題を切り分ける為に、VBAにて、DDEサーバ(RSS.exe)、及び、DDEクライアント(エクセル)の状態を監視し、ハングしている方を再起動などの対策をとりたいのですが、VBAでどのようにして状態監視をすれば良いのか分からない為、問題の切り分けが出来ていないのが現状です。
上記の問題切り分けの為にDDEサーバ、DDEクライアントの監視方法等ご存知であれば、教えて頂けると幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Visual Basic(VBA) エクセル 2つの列にある値の完全一致を抜き出すVBA 15 2022/12/15 03:22
- その他(パソコン・スマホ・電化製品) PCに詳しい方に、質問です。 使用しているのは、TOSHIBAのPCで、多分なんですけど、アップデー 4 2023/01/28 03:30
- 外国株 インデックス投資は、実は罠がある、バンガード社が、ウオール街の ランダムウオーカーとか、宣伝活動した 2 2023/01/06 22:08
- Visual Basic(VBA) エクセルVBA コードが同じでもファイルによって処理速度が大きく変わるのはなぜ 5 2022/11/06 21:34
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
- Excel(エクセル) 更新前と更新後の差分をVBAを使って抜き出したい 5 2023/06/01 14:35
- Excel(エクセル) ネットワーク上のエクセルとリンクしている時にデータ更新をvbaで、refresh Allで行う場合の 2 2023/04/10 05:39
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
Market Speed をVBAで制御したいのですが・・・
Word(ワード)
-
歩み値情報をエクセルに表示させるには
株式市場・株価
-
-
4
楽天RSS2での移動平均の取得について
日本株
-
5
エクセルVBAにおけるON TIMEメソッドの解除方法について
Visual Basic(VBA)
-
6
Excel(エクセル) VBA プロシージャーをミリ秒で繰り返し実行する方法
Excel(エクセル)
-
7
エクセルVBAで楽天証券に注文を出すには?
Visual Basic(VBA)
-
8
13箇所の株価をエクセルにRSSで取り込みそれを5分間隔で自動でコピーしていく。
Visual Basic(VBA)
-
9
エクセルでVBAを使用して1分毎にファイルを保存するプログラムを書きた
Excel(エクセル)
-
10
OnTime 使用時のプロシージャへの引数の与え方、その記述方法を教えて下さい。
Visual Basic(VBA)
-
11
マーケットスピードⅡの通信設定について
日本株
-
12
楽天マーケットスピード RSSでエクセルに書き出す
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 空白行に転記する
-
EXCELのSheet番号って変更でき...
-
同じ作業(データコピー・貼付...
-
マクロ実行後に別シートの残像...
-
VBAのグラフに違うシートの...
-
集計して別シートに集計結果を出す
-
検索して修正したデータの上書転記
-
Excelマクロで不要な行を繰り返...
-
VBA別シートの最終行の次行へ転...
-
Unionでの他のシートの参照につ...
-
Excel フィルターで条件を絞っ...
-
VBA 重複チェック後に値をワー...
-
別シートから年齢別の件数をカ...
-
Excelで横書き50行の漢字テス...
-
【VBA】特定の条件でセルをコピー
-
ExcelのVBA ListBox.RowSource...
-
Changeイベントで複数セルへの...
-
VBAで質問ですが、皆さんはどの...
-
エクセル 複数シートの同一セ...
-
2010 Excel VBA 測定結果を貼...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
EXCELのSheet番号って変更でき...
-
VBA 空白行に転記する
-
マクロ実行後に別シートの残像...
-
VBA別シートの最終行の次行へ転...
-
Count Ifのセルの範囲指定に変...
-
VBA 別ブックからの転記の高速...
-
Changeイベントで複数セルへの...
-
【VBA】特定の条件でセルをコピー
-
100万件越えCSVから条件を満た...
-
楽天RSSからエクセルVBAを使用...
-
複数シートの複数列に入力され...
-
Excel VBA オートフィルターで...
-
VBAで変数の数/変数名を動的に...
-
Unionでの他のシートの参照につ...
-
Excel2013で切り取り禁止
-
VBA 実行時エラー1004 rangeメ...
-
ExcelのVBマクロを、バックグラ...
-
VBA 最終行を選んだシートにコ...
-
アクセスからエクセルへ出力時...
おすすめ情報