第7回 VBAでボタンをクリックする
第5回目のVBA講座です。
なんですと?
テクニカル講座はどないしたのかって。。。。
実はいま、楽天証券のFXウィンドウでの自動発注を検討しています。
たとえば、以下のような売買をしたいとします。
これは、ごくごく一般的な順張り+損きり+ドテンのパターンです。
最初は、OCO注文でこれができるのかと思ったのですが無理でした。
OCOの場合は、注文2が確定した段階で、注文3は取り消しになってしまうのです。
証券会社の注文方法でいえば、これは
IF ? DONE ? DONEというスタイルになります。
このような簡単な注文さえできないのです。
悲しいですね。。。
そこで、VBAで自動注文処理が必要になってくるのです。
さてさて、前回はVBAのコントロールを調べて、
そこに文字列を入れる方法をレクチャーしましたが、
かなり専門的な内容で、難しかったと思います。
もうすこし直感的にオブジェクトの名前を知る方法が
ないのか調べたところ、以下のソフトが見つかりました。
ファイヤフォックス用
DOM inspector - Mozilla Firefox まとめサイト
Internet Explorer Developer Toolbar
さっそくDOM Inspectorを使ってみたところ、
マウスでクリックしたオブジェクトのIDが一発で
参照できたのでした。
「ログイン」のボタンは、
login-btn
であることがわかりました。
ここで、プロパティの状態をイミディエイトウィンドウで調べて見ましょう。
値はログインと出ました。
ばっちり、これがログインボタンであることがわかります。
あとは、これをポチッと押してあげれば、良いわけですね。
- IE.Document.getElementById("login-btn").click
こんな感じで、ログインバッチができましたね。
YYYYYYYY: IDを入れる
XXXXXXXX: パスワードを入れる
- Private Declare Sub SleepLib"kernel32" (ByVal dwMilliseconds As Long)
- Sub IE_login()
- Set IE=CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("https://www.rakuten-sec.co.jp/web/fx/rfx/login.html") - CallSleep(6000) '6秒のウェイトです。 ネットが遅い場合は6000を大きくしてください。
- IE.Document.all.loginId.Value="YYYYYYYY"
IE.Document.all.Password.Value ="XXXXXXXX"
IE.Document.getElementById("login-btn").Click - End Sub
実行すると、こんな感じで、ログインまで出来ると思います。
ログイン画面
ログイン完了!
タイマーの時間設定が長いので、このままでは
時間がかかりますね。
この辺は、いくらでも改良の余地がありますし、
各自で調べてみてください。
VBAを使ったWEBプログラミングでは、当然ながら開発言語に対するスキルも必要です。
その他は、COMや、DOMといったオブジェクトのリファレンスを把握する必要があります。
またメタトレーダの場合には、C言語は最低限、知っておく必要があります。
システムトレーダになるということは、システム開発ができるスキルがなくてはなりません。
まだまだやるべきことが、たくさんありそうですね。。。。
参考記事
- InternetExplorer操作によるコントロールへのアクセス
- @ IT総合フォームや入力部品を表す9つの正しいXHTMLタグ
- JavaScriptとDOMによる動的なWebページの作成
- これも必読!
今回の記事がお役に立ちそうと思われた方は、ブログ人気投票に投票をお願いいたします。