私のいつものパターンだと、
ボタンを探して、
そのボタンを.Clickするのですが、
今回は、最近みつけた方法、
.Document.Script.setTimeout "javascript:xxxx関数直接コール;", 1000
のテストを兼ねて実験してみます。
(※ http://www.ken3.org/cgi-bin/group/vba_ie_script.asp も 合せてみてください。)
1.動きを探る
http://www.5050.jp/game/roulette/2.ソースをみる
2.1 onclickの部分をコピーする
input type="button" value="クリア" onclick="setbetchip(0);"
input type="button" value="+1" onclick="addChip(1);"
input type="button" id="showbonus" value="ボーナスチェック!"
onclick="showallgauge();"
3.実行、試行錯誤する。
作成したソース
xxxx.vbs で 保存して実行
'ルーレットゲームの クリアボタン、+1ボタン、ボーナス表示のonclick関数を実行 'IEのオブジェクトを作成する Set objIE = CreateObject("InternetExplorer.application") objIE.Top = 100 objIE.Left = 100 objIE.Width = 1024 objIE.Toolbar = False objIE.Visible = True 'テストで5050jpのルーレットを表示する 'ページを開く(.Navigateで表示する。) objIE.Navigate "http://www.5050.jp/game/roulette/" 'ログイン飛ばして直接表示 '読み込み完了となるまで、ループする。 While objIE.ReadyState <> 4 Or objIE.Busy 'READYSTATE_COMPLETE = 4 Wscript.Sleep 100 '1000で1秒 Wend 'フォーカスのセット Dim objCHIP Set objCHIP = objIE.Document.getElementsByName("selectchip") '変数に一度セットする If objCHIP.Length <> 0 Then objCHIP(0).Focus 'フォーカスをセットしてみる 'あとは、連続でボタンに割り当てられたスクリプトを直接呼ぶテスト 'クリア objIE.Document.Script.setTimeout "javascript:setbetchip(0);", 1000 '+1 objIE.Document.Script.setTimeout "javascript:addChip(1);", 1000 'ボーナス表示 objIE.Document.Script.setTimeout "javascript:showallgauge();", 1000 '↑、こんな感じでボタンを.ClickしてonClickを実行させなくても、 '直接、関数を引数付きで呼ぶことができます。 '※ですが、thisやthis.formを使って自分自身を引数として渡している場合はダメかなぁ? '本当は、ここから、自動で数字もセットしたいけど....
試行錯誤の動画
こんな感じで、完成したプログラムの説明なのに、
必要以上にあせってます(笑)
動画URL → http://www.youtube.com/watch?v=HvaZB6zZSLI
www.youtube.com
終わりのあいさつ
こんな感じで使えるので、場面によって使い分けてください。
以上、テスト動画 その2 でした。。。。