マーケットスピード」タグアーカイブ

エクセルVBA、楽天証券マーケットスピードのRSSを使用して株価情報取得

マーケットスピードの株価チャートを見ていて、株価や板をずっと見ていると目が疲れてくる。
株価の変動が大きいときは我慢できるが、商いが薄いときは株価が動かず眠くなる。
そこで、楽天証券マーケットスピードのRSSを使用して株価情報を取得して必要な値になったら色の変化で表示させたら便利かもと思った。
このRSSを使用して株価情報をエクセルのシードに表示させるとどうなるか試してみた。
なお、エクセルを使用するために、毎月約1300円くらい支払う。年払いのほうが安いが毎回数ヶ月くらいしかエクセルを使わないので今回も月極にした。

マーケットスピード2のRSSのマクロはこちら

・RSS(リアルタイムスプレッドシート)
「RSSとは、マーケットスピード投資情報ページ「市況情報(先物OP市況情報)」に表示される値(注)を特殊な関数(RSS関数)を用いて市販表計算ソフト『Microsoft Excel』に取り込み、セル上に表示させるツールです。」
https://www.rakuten-sec.co.jp/MarketSpeed/onLineHelp/msman1_11_1.html

マーケットスピードの機能でも株価情報を表示させることは可能だが、RSSとエクセルを使用することにヨテ自分だけの必要な情報のみを表示させるシートを作成することができる。

・VBAの注意点
IF文のelse if は[elseif](他の言語は、大抵[else if]のようにスペースを入れる)
等価はイコール1つ(他の言語は大抵イコールが2つ必要)
ちなみにVBAとマクロは厳密に仕様が異なることがあるので確認するとよい

・使用環境:Windows10、エクセル Office365 マーケットスピード、RSS.exe
なお、RSSを登録するにはエクセルのマクロを有効にするなど、いくつか設定が必要である。
またRSSが実行できるようにセキュリティソフトの設定も必要。
これらの設定は楽天証券のホームページとグーグル先生が教えてくれる。
(数年経過すると、サイトが閉鎖されているのでネットの情報も永遠ではない)

・エクエルシート構成、マクロ仕様

‘VBAはシングルクォーテーションがコメントになる
‘Ctr+spaceで入力途中でコマンドの候補が表示される。簡易的な入力支援みたい

・動作環境:Windows,マーケットスピード、RSSを起動しマーケットスピードにログインしておく
‘Windowsのみ、RSSが対応しているのはWindowsのみでMacは動作しない
・目的
‘RSSで取得した情報を一定時間間隔で別セルにコピーする、時刻、比率等を記載
‘株価の動きを予測する資料とする
・動作手順
‘マーケットスピードにログインして、RSSを起動する「接続中」となる。「接続処理中」は接続できていないので接続中になるように調整すること
‘エクセルを起動して該当のファイルを開く
‘取得したい銘柄コードを入力する。この作業は手作業
‘マクロを実行させる。その後は、自動でセルのコピーが始まる
‘市場が開いていない時間帯はコピー処理は行わない。
‘2021・04・26

 

楽天証券のマーケットスピード2、エクセル、別のブックのセルからコピーする案

作業はこれからで、アイデアだけをまとめておく

楽天証券の「マーケットスピード2」(2)のRSSと「マーケットスピード」(1)のRSSは構成が異なる。
「マーケットスピード」(1)(以下(1)とする)のRSSは実行形式であり、(1)を起動してRSS.exeを起動する必要があった。
一方「マーケットスピード2」(以下(2)とする)のRSSは、(2)を起動すれば使用できる。(2)用のRSS.exeは存在しない。
なお、エクセルのアドイン登録がどちらの場合も済んでいるものとする。
(1),(2)は同時に実行が可能である。

やってみたこと

(1)の場合VBAでループ処理により、株価の取得からいくつかの処理を行っていた。
(2)で(1)の同様な機能を実行しようとしても、動作しなかった。
具体的には(1)を別名保存して、(2)用の関数名に置換した。大まかに置換することで実行可能。
必要な関数の変更を行ったが、(2)では実行できなかった。エラー等の発生はないが、マクロとVBAの組み合わせの相性が悪いようだった。

改良

よって、
(2)で(1)と同様な機能を実行する場合、(2)で取得したデータをブックのシートのセルに貼り付け、その貼り付けたデータを別のブック(VBAコードあり)へコピーすることにした。
つまり、(2)のブックで株価等のデータを集め、別の処理をするブック(B)を作成し、ブック(B)にループ処理を行うVBAコードを記述することにした。

ブックA(マーケットスピード2のRSS):株価等の情報をセルに確保

ブックB(VBAコード):株価等の情報をもとに適宜必要な処理を行う。

VBA,マクロ

ブックAのマクロ
(これから)

ブックBのVBAコード
(これから)

以前のRSSを利用したマクロ