ExcelVBAではじめるバイナリーオプション自動取引

4. 自動取引ツールを作ろう

d.サイトにログインする


d. サイトにログインする

webページへのアクセス

 さて、GMOクリック証券のログイン画面には「ユーザーID」と「ログインパスワード」の入力ボックスがありますので、ここにユーザーIDとパスワードを入力して「ログイン」ボタンをクリックしてみます。

 と言っても手動で入力するのではなく、VBAを使ってやってみましょう。

 HTMLソースを表示して該当する部分を探すと、「j_username」と「j_password」というidのinput要素、「LoginForm」というnameのbutton要素が見つかるはずです。

外為オプションの取引ページにログインするコード

 以下はユーザーIDとパスワードを入力してログインボタンをクリックし、さらに外為オプションの購入画面へ移動するコードです。

 前回のコードの「'←挿入地点@」の部分に追加してください。

 実行する前に、自分の●●●●●●●●をユーザーIDに、××××××××をパスワードに書き換えてください。

'←挿入地点@ Dim tags As Variant 'タグ検索用変数 IE.document.getElementById("j_username").innerText = "●●●●●●●●" 'ユーザーID入力 IE.document.getElementById("j_password").innerText = "××××××××" 'パスワード入力 For Each tags In IE.document.getElementsByTagName("button") 'ログインボタンを探す If tags.Name = "LoginForm" Then tags.Click 'クリック Exit For End If Next While (IE.Busy = True) Or (IE.readyState < READYSTATE_COMPLETE) '表示待ち DoEvents Wend IE.document.getElementById("fxopMenu").Click '外為オプションタブをクリック While (IE.Busy = True) Or (IE.readyState < READYSTATE_COMPLETE) '表示待ち DoEvents '制御を渡す Wend

外為オプションの購入画面を表示

 上記のようにプログラムでHTMLのタグを探し、値を入力したりクリックしたりすることにより、「基本的」にはエクセルからwebページを操作することができます。

 もちろん「基本的」でない場合もあるのですが、とりあえず今は後回しです。

コードを簡単に解説

 HTMLソースを見て入力ボックスのidが分かったので、.document.getElementById()で対象の入力ボックスを指定し、innerTextにユーザーID、パスワードをそれぞれ入力しています。

 ログインボタンにはidが付されていないので、.getElementsByTagName()でbuttonタグを探した後、nameが"LoginForm"であるもの(ログインボタン)をクリックしています。

 最後に、"fxopMenu"というidが付けられている外為オプションタブをクリックして外為オプションの購入画面へ移動しています。

 このように、webページを操作するプログラムを書きたい場合、まずは操作したいページのHTMLソースを見て対象の要素を確認することが必要です。そして要素さえ特定することができれば、その後は難しくありません。

 問題は要素が特定できない場合で、具体的にはFLASHを使用したページ等です。

重要なこと

 今回の例ではユーザーID及びパスワードを直接プログラムに書き込んでいますので、このような情報を保存したファイルの取り扱いには十分に注意してください。

 ログイン処理を手動で行うようにすれば利便性は落ちますが、ユーザーIDやパスワードをプログラムやファイルに書き込んでおく必要がなくなるため、ツールのセキュリティは向上します。