最近、株取引ゲーム(^-^;を始めましたが…数日前の平日に所用で休暇を取って、用事の合間の小一時間「MarketSpeed(←楽天証券のオンライン取引用ソフト)」で遊んでみました。
ほぼ、リアルタイムで変化し、変化した部分がチカチカと点滅する様子は、なんだかカッコイイ!…かどうかは別としてなんだか楽しかったです。取引の内容などは、また改めて書くとして…今回は、リアルタイムスプレッドシート(RSS)の使い方のメモです。
ちなみにRSSといっても、最近流行りのニュースやブログのサマリーを取得表示するわけではなく…リアルタイムにエクセルのセルに株価情報などを取得するアドインソフトです。リアルタイムスプレッドシートの略だそうです。正直言って…ネーミングに捻りも何も無く、紛らわしいですが…(笑)
そのRSSを使って「チャート分析系」の自動売買価格決定の仕組み(マジ?)でも作ろうかと、色々と遊び始めました。RSS自体の使い方はいたって簡単で、例えばエクセルのB1セルに楽天の現在の株価を表示したければ対象セルに「=RSS|'4755.Q'!現在値」等と関数を書いてあげればリアルタイムに情報を取得して表示してくれます。
色々と自動で処理させたいので、A1セルに「4755.Q」を入力したらB1セルに現在の株価が表示されるように、またC1、D1…セルにはその銘柄の様々な情報を表示するようにしたいと思います。しかし、ここで躓きました。
上の例の様に楽天の銘柄コード4755.Q も関数の一部として入力してあげなければなりません。B1セルにエクセルの組み込む関数の様に「=function(A1,'現在値')」等と書いてA1セルに「4755.Q」と書ければ、いいなと思って色々と試してみたのですが、出来ませんでした。
そこで昨晩、楽天証券に問い合わせフォームで聞いてみました。多分、簡単にメールで返信がくるかと思ったけれど…先ほど、電話でちゃんと答えが返ってきました。結局、出来ないということなのですが…(T-T) 出来ないことも、有る意味驚き(関数の実装方法として)ですが…担当者から電話で直接回答をいただけるとは思いませんでしたので、これもまた驚きでした。楽天証券、サポートがしっかりしているようですね。
で、話が逸れていますが…結局、セルに埋め込んで出来ないということなら(そういいながら、実は何かやり様がある気がしてならない…)VBAですかね。。
今は、試せない環境なので後でやるとして…とりあえず、思いついたのをメモしておきます。押えるところは2つ。A列の内容が変化したことを掴まえること。その対応する行にRSS関数を埋め込んでいくこと。
1つ目は、Worksheet_Change か Worksheet_SelectionChange あたりのワークシート関数を使って、A列の内容が書き換わったことを掴まえ、コピー関数を起動します。
2つ目は、Range("??").Formula = "=RSS|'" & Range(??).value & "'|現在値" 等でRSS関数を文字列として処理し、埋め込みます。ここは、複数列分の処理が必要になるかもしれませんね。
めんどくさいけれど…こんな方法しか、無いのかしら…。