スマフォ用サイト


スマフォ用サイトのQRコード

このページを共有


7月のカレンダー



1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

カテゴリ一覧

ただの日記(971)
原付生活(3)
子育て日記(11)
PC関連(11)
もろもろ日記(912)

競馬+POG(1643)
当たらない予想と反省会(708)
POGネタ(58)
競馬について考える(19)
競馬もろもろ(223)
ダービーウィーク!(14)
2011年競馬場訪問記(27)
2012年競馬場訪問記(53)
2013年競馬場訪問記(61)
2014年競馬場訪問記(40)
2015年競馬場訪問記(44)
2016年競馬場訪問記(25)
2017年競馬場訪問記(36)
2018年競馬場訪問記(39)
2019年競馬場訪問記(34)
2020年競馬場訪問記(24)
2021年競馬場訪問記(37)
2022年競馬場訪問記(51)
2023年競馬場訪問記(72)
2024年競馬場訪問記(63)
地方競馬馬主(5)
ひとくち馬主(3)

ホームページ製作(366)
PHPの備忘録(13)
CSSの備忘録(5)
JavaScriptの備忘録(2)
ホームページもろもろ(287)
Flashの備忘録(12)
管理人の備忘録(21)
スマフォ用サイト作成(19)

自宅サーバ(361)
FreeBSD(17)
Apache(4)
PHP(5)
MySQL(17)
サーバもろもろ(145)
障害連絡(132)
リニューアルプロジェクト 2011-2012(41)

お仕事(48)
お仕事(48)

旅の記録・水曜どうでしょう関連(43)
水曜どうでしょう(11)
2009年四国お遍路(6)
2009年アンコールワット(5)
2010年ベトナム(3)
2010年いっそ九州(5)
2010年北海道179市町村(5)
2011年春の一人旅(2)
2011年四国お遍路(6)


先月までのネタ

2024年
2024年12月(1)
2024年11月(7)
2024年10月(10)
2024年9月(6)
2024年8月(6)
2024年7月(7)
2024年6月(7)
2024年5月(5)
2024年4月(5)
2024年3月(7)
2024年2月(8)
2024年1月(13)

2023年
2023年12月(11)
2023年11月(8)
2023年10月(10)
2023年9月(7)
2023年8月(9)
2023年7月(10)
2023年6月(6)
2023年5月(10)
2023年4月(5)
2023年3月(4)
2023年2月(6)
2023年1月(6)

2022年
2022年12月(9)
2022年11月(8)
2022年10月(5)
2022年9月(5)
2022年8月(2)
2022年7月(6)
2022年6月(9)
2022年5月(3)
2022年4月(3)
2022年3月(4)
2022年2月(7)
2022年1月(5)

2021年
2021年12月(8)
2021年11月(9)
2021年10月(4)
2021年9月(3)
2021年8月(2)
2021年7月(6)
2021年6月(12)
2021年5月(2)
2021年4月(8)
2021年3月(2)
2021年2月(7)
2021年1月(2)

2020年
2020年12月(8)
2020年11月(3)
2020年10月(4)
2020年9月(1)
2020年8月(2)
2020年7月(7)
2020年6月(6)
2020年5月(9)
2020年4月(11)
2020年3月(8)
2020年2月(5)
2020年1月(9)

2019年
2019年12月(4)
2019年11月(5)
2019年10月(7)
2019年9月(2)
2019年8月(2)
2019年7月(8)
2019年6月(2)
2019年5月(3)
2019年4月(2)
2019年3月(4)
2019年2月(3)
2019年1月(1)

2018年
2018年12月(8)
2018年11月(5)
2018年10月(10)
2018年9月(6)
2018年8月(1)
2018年7月(7)
2018年6月(5)
2018年5月(7)
2018年4月(19)
2018年3月(3)
2018年2月(3)
2018年1月(11)

2017年
2017年12月(14)
2017年11月(11)
2017年10月(18)
2017年9月(18)
2017年8月(21)
2017年7月(29)
2017年6月(26)
2017年5月(23)
2017年4月(18)
2017年3月(11)
2017年2月(11)
2017年1月(16)

2016年
2016年12月(25)
2016年11月(24)
2016年10月(30)
2016年9月(15)
2016年8月(16)
2016年7月(15)
2016年6月(18)
2016年5月(30)
2016年4月(28)
2016年3月(29)
2016年2月(26)
2016年1月(32)

2015年
2015年12月(30)
2015年11月(29)
2015年10月(30)
2015年9月(27)
2015年8月(28)
2015年7月(28)
2015年6月(28)
2015年5月(29)
2015年4月(30)
2015年3月(28)
2015年2月(26)
2015年1月(29)

2014年
2014年12月(31)
2014年11月(28)
2014年10月(31)
2014年9月(29)
2014年8月(29)
2014年7月(31)
2014年6月(31)
2014年5月(30)
2014年4月(30)
2014年3月(28)
2014年2月(27)
2014年1月(31)

2013年
2013年12月(29)
2013年11月(27)
2013年10月(29)
2013年9月(27)
2013年8月(28)
2013年7月(28)
2013年6月(29)
2013年5月(29)
2013年4月(30)
2013年3月(26)
2013年2月(24)
2013年1月(29)

2012年
2012年12月(28)
2012年11月(27)
2012年10月(28)
2012年9月(30)
2012年8月(31)
2012年7月(33)
2012年6月(32)
2012年5月(33)
2012年4月(35)
2012年3月(30)
2012年2月(27)
2012年1月(31)

2011年
2011年12月(25)
2011年11月(25)
2011年10月(28)
2011年9月(28)
2011年8月(28)
2011年7月(28)
2011年6月(27)
2011年5月(26)
2011年4月(16)
2011年3月(9)
2011年2月(11)
2011年1月(9)

2010年
2010年12月(12)
2010年11月(11)
2010年10月(8)
2010年9月(13)
2010年8月(10)
2010年7月(20)
2010年6月(6)
2010年5月(9)
2010年4月(2)
2010年3月(3)
2010年2月(5)
2010年1月(8)

2009年
2009年12月(9)
2009年11月(2)
2009年10月(4)
2009年9月(3)
2009年8月(1)
2009年7月(9)
2009年6月(3)
2009年5月(14)
2009年4月(10)
2009年3月(11)
2009年2月(9)
2009年1月(10)

2008年
2008年12月(1)
2008年11月(1)
2008年10月(1)
2008年9月(5)
2008年8月(1)
2008年7月(1)
2008年6月(2)
2008年5月(1)
2008年4月(1)
2008年3月(2)
2008年2月(7)
2008年1月(7)

2007年
2007年12月(11)
2007年11月(7)
2007年10月(8)
2007年9月(12)
2007年8月(11)
2007年7月(5)
2007年6月(16)
2007年5月(8)
2007年4月(2)
2007年3月(14)
2007年2月(2)
2007年1月(8)

2006年
2006年12月(4)
2006年11月(6)
2006年10月(7)
2006年9月(10)
2006年8月(9)
2006年7月(20)
2006年6月(13)
2006年5月(3)

2005年
2005年9月(13)
2005年8月(13)
2005年7月(18)
2005年6月(24)
2005年5月(26)
2005年4月(26)
2005年3月(27)
2005年2月(22)
2005年1月(26)

2004年
2004年12月(29)
2004年11月(29)
2004年10月(26)
2004年9月(23)
2004年8月(12)


最近よく読まれてるネタ



Excel VBAで「SPAT4自動投票システム」を作ってみました。
(2020年7月19日のネタ:42回)

本日は京都2歳ステークス の観戦に、京都競馬場 へ行ってきました。
(2024年11月23日のネタ:41回)

今日は改修工事真っ只中の京都競馬場 (パークウインズ京都競馬場)へ行ってきました。
(2022年7月30日のネタ:31回)

本日はジャパンカップ の観戦に、今年最後の東京競馬場 へ行ってきました。
(2024年11月24日のネタ:25回)

今夜は競馬の話題を書こうと思ったんですが…。
(2014年3月13日のネタ:23回)

2017年のフィナーレ!今年最後の門別競馬場へ行ってきました。
(2017年11月9日のネタ:14回)

改めて…昨日は京都競馬場へ行ってきました。
(2017年11月26日のネタ:12回)

管理人の当たらないG1予想!皐月賞編!
(2012年4月14日のネタ:11回)

今日は久しぶりの中山競馬場 へ行ってきました。
(2024年12月1日のネタ:10回)

今日は(共有)所有馬キューピッズアロー の応援に、日帰り弾丸で名古屋競馬場 へ行ってきました。
(2024年10月17日のネタ:10回)



最近のコメント



今日は改修工事真っ只中の #京都競馬場 (パークウインズ京都競馬場)へ行ってきました。(チョネ)

本日は笠松競馬場へ行ってきました。(あいべ)

管理人の今年の目標が一つ増えました…。(あああ)

まあそんなに書くことはありませんが…。(momo)

【管理人からご挨拶】 『The Sunday Breeze』は5月25日に開設19周年を迎えます。(アオヤギ)

4月からスタートする「Sunday Breeze POG!」の一部ルール追加について。(アオヤギ)

昨日「Sunday Breeze賞」の観戦に帯広競馬場へ行ってきました。(白イチゴ)

本日5月25日、「The Sunday Breeze」は18回目の誕生日を迎えました。(アオヤギ)

【「G1予想大会」プレリリース終了】皆様のご協力、本当にありがとうございました。(アオヤギ)

【再度お知らせとお願い】今週からの「G1予想大会」、新機能プレリリースを公開中です。(白イチゴ)



ネタの検索



管理人の競馬観戦記録


(2024年)

JRA札幌競馬場
8月31日 (札幌2歳S)

JRA函館競馬場
7月13日 (函館2歳S)

JRA福島競馬場
6月29日

JRA新潟競馬場
5月11日
8月4日 (レパードS)
8月25日 (新潟2歳S)

JRA東京競馬場
4月21日 (フローラS)
4月27日 (青葉賞)
5月5日 (NHKマイルC)
6月2日 (安田記念)
10月13日 (東京ハイJ)
10月26日 (アルテミスS)
11月3日 (AR共和国杯)
11月16日 (東スポ杯2歳S)
11月24日 (ジャパンC)

JRA中山競馬場
1月6日 (中山金杯)
1月14日 (京成杯)
3月2日 (オーシャンS)
4月7日
4月14日 (皐月賞)
9月8日 (京成杯AH)
9月16日 (セントライト記念)
9月28日
12月1日

JRA中京競馬場
9月1日 (小倉2歳S)

JRA京都競馬場
6月1日 (鳴尾記念)
10月20日 (菊花賞)
11月23日 (京都2歳S)

JRA阪神競馬場
3月23日 (毎日杯)

JRA小倉競馬場
1月27日

帯広競馬場
10月5日

盛岡競馬場
7月14日

水沢競馬場
3月10日 (奥州弥生賞)

浦和競馬場
9月19日

船橋競馬場
1月17日 (ブルーバードC)
1月19日
2月9日
3月5日
6月25日
7月18日 (習志野きらっとスプリント)
7月22日
8月27日
9月24日
10月30日 (平和賞)
11月1日

大井競馬場
4月12日

川崎競馬場
1月5日
3月11日
8月5日

金沢競馬場
7月7日

笠松競馬場
1月25日

名古屋競馬場
1月19日
10月17日

園田競馬場
3月22日
5月31日

姫路競馬場
1月26日

高知競馬場
2月25日 (レジーナディンヴェルノ賞)

佐賀競馬場
1月28日

門別競馬場
5月16日
6月19日 (栄冠賞)
10月3日 (ネクストスター門別)
11月7日 (道営記念)

2012年以降の競馬観戦インデックス


管理人の競馬家計簿


(最近14日分)

2024年11月20日浦和
10勝  回収率:0.0%

2024年11月23日京都
62勝  回収率:53.6%

2024年11月24日東京
52勝  回収率:310.8%

2024年11月24日京都
10勝  回収率:0.0%

2024年11月27日船橋
10勝  回収率:60.0%

2024年11月30日中山
51勝  回収率:93.5%

2024年11月30日京都
64勝  回収率:124.1%

2024年12月1日中山
52勝  回収率:112.4%

2024年12月1日中京
10勝  回収率:0.0%

2024年合計
1263347
勝率:27.5%  回収率:74.3%
(万馬券:12本的中)

2023年合計
1772537
勝率:30.3% 回収率:71.2%
(万馬券:11本的中)

2022年合計
2097563
勝率:26.8% 回収率:66.4%
(万馬券:29本的中)

2021年合計
2147527
勝率:24.5% 回収率:67.8%
(万馬券:24本的中)

2020年合計
3046684
勝率:22.5% 回収率:65.2%
(万馬券:39本的中)

2019年合計
1438346
勝率:24.1% 回収率:68.2%
(万馬券:39本的中)

2018年合計
1488367
勝率:24.7% 回収率:75.1%
(万馬券:39本的中)


管理人のつぶやき


(皆様のフォローをお願いします。)

@sunday_breeze からのツイート

Excel VBAで「SPAT4自動投票システム」を作ってみました。

最初に書いておきます。

・このプログラムで何か問題が起きても、管理人は責任を負いません
 馬券購入についても当然ですが各個人の問題です。文句言わないでください。

・ある程度の知識がある方を前提にしています。
 プログラムの内容についての質問等にはあまり答える気はありません
 わからないことがあれば、各個人でググって調べてください。

・自由に改変とかしてください。これで商売されるのも勝手にやってください。
 ただ何の責任もとりません
 ブログなどで紹介するなら『「The Sunday Breeze」のやつを参考にした』程度でも
 ひとこと書いてもらえると嬉しいです。強制ではないです。

-----

さて。
JRAのインターネット投票システム「iPAT」には
自動で投票済ませてくれるプログラムがあるんですが
地方競馬用の投票システム(SPAT4、オッズパーク、楽天競馬)には
ネットを探す限り、自動で投票してくれるシステムはないようです。

ということで、今回簡単ではありますが
管理人が長く使っている「SPAT4」で自動投票してくれるプログラムを組みました。

---

基本的な動作と前提条件

・管理人はVBで作っていますが、単独exeで動くかOfficeベースで動くかの違いなので
 ExcelのVBAでも動作すると思います。Excelのバージョンによっては使えません。
 もしかしたらVB.netでも使えるのかな?(未確認)

InternetExplorerを使います。Windows10ではオプションでインストールできます。

・当たり前ですが、予想はしません
 予想(買い目)をフォーマットに従ってテキストファイルに書いておくことが前提です。

・公開するソースは「3連複」「3連単」「ワイド」の「フォーメーション」のみを対応としていますが
 ほかの券種や買い方も簡単に追加できると思います。
 必要な方はご自由に直してください。

・事前にSPAT4への入金はしておいてください(残高不足で投票できないだけですが)

---

こういう予想ファイルを作りましょう。
コース名、レース番号、券種、馬1(ハイフンでつなげる)、馬2、馬3、1点当たりの金額(100円単位)をカンマ区切りで。
同じ形式で複数行記入できます。違う競馬場でも違うレースでも違う券種でも、いっぺんに投票できます。

高知,12,三連複,05,03-06-09,01-02-03-07-09-10-11-12,1
帯広,9,ワイド,05,03-06-09,,2


この場合、1行目は
高知12レースの3連複で
馬1(1列目)が5、馬2(2列目)が3,6,9、馬3(3列目)が1,2,3,7,9,10,11,12で
各100円ずつの購入。

2行目は帯広9レースのワイドの場合
馬1(1列目)に5、馬2(2列目)に3,6,9
馬3がないので、値を入れずにカンマが続くように書きます。
この場合は各200円ずつ(計600円ですかね)

---

最初にInternetExplorerをVBAの中で使える設定をしましょう。

メニューの[ツール]から[参照設定]を開いて
・Microsoft HTML Object Library
・Microsoft Internet Controls
を探してチェックを入れましょう。



それと、ソースの一番最初に次のように書いておきましょう。
Windowsで提供されている標準の関数を使う準備です。

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hwndParent As Long, ByVal hwndChildAfter As Long, ByVal lpszClass As String, ByVal lpszWindow As String) As Long
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Const WM_COMMAND As Long = &H111&


---

ではプログラムをぶつ切りで書いていきます。
最終的につなげれば、動くはずです。


まずは予想ファイルを読み込みます。
「c:\temp」に「votedata_なんとか.csv」という名前で保存している例です。
複数ファイルがあってもいいように、ループさせます。

strPath = "c:\temp\"
strFile = Dir$(strPath & "votedata_*.csv")

Do While strFile <> "" ’ ここからループ1(ファイルがあるだけループ)
 fileNo = FreeFile
 Open strPath & strFile For Input As #fileNo



InternetExplorerを開きます。

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.navigate "https://www.spat4.jp/keiba/pc"


ページが完全に表示されるまで待機。

Do While objIE.Busy = True Or objIE.readyState <> 4
 DoEvents
Loop





ここで、HTMLのソースを見ればわかりますが
ログインフォーム全体が「LOGIN」
加入者番号は「MEMBERNUMR」、利用者IDは「MEMBERIDR」と名前がついています。
それぞれ値を入れて、ログインボタンを押しましょう。

objIE.document.LOGIN.MEMBERNUMR.Value = "01234567"
objIE.document.LOGIN.MEMBERIDR.Value = "12345678"
objIE.document.LOGIN.submit


ページが完全に表示されるまで待機。

Do While objIE.Busy = True Or objIE.readyState <> 4
 DoEvents
Loop
sleep 2000 ’ 念のため2秒待機





ボタンが並んでいる中から、「投票入力」と書かれているボタンを選んでクリックします。

For Each objTag In objIE.document.getElementsByTagName("input")
 If InStr(objTag.outerHTML, "投票入力") > 0 Then
  objTag.Click
  Exit For
 End If
Next


ページが完全に表示されるまで待機。

Do While objIE.Busy = True Or objIE.readyState <> 4
 DoEvents
Loop
sleep 2000 ’ 念のため2秒待機





このページはフレーム構成になっていて
上の黄色が0、赤が左から1,2,3、下の黄色が4
使うのは1,2,3ですかね。

フレームを分割します。

Set objFrame = objIE.document.frames


最後の金額入力の準備だけしたら
予想ファイルから1行ずつ見ていきますかね。

Dim Kingaku As Integer
Kingaku = 0
Do While Not EOF(fileNo) ’ ここからループ2(ファイルの行があるだけループ)
 Line Input #fileNo, buf
 strFileData = Split(buf, ",")



フレーム1(左の赤)を見ていきます。
それぞれこういう名前がついています(HTMLにこう書かれています)



まずは「PLACE」というセレクトボックス(コンボボックス)を探して
予想ファイルの1項目目(0)と一致する場名を選択します。
選択したら、JavaScriptのonChangeイベントを実行。
onChangeを実行しないと、レース番号が出てきません。

For Each slt In objFrame(1).document.getElementsByTagName("select")
 If slt.Name = "PLACE" Then
  For Each opt In slt.getElementsByTagName("option")
   If opt.Text = strFileData(0) Then
    opt.Selected = True
    slt.onchange
    Exit For
   End If
  Next
 End If
Next


同じ要領で、次はレース番号。予想ファイルの2項目目(1)

For Each slt In objFrame(1).document.getElementsByTagName("select")
 If slt.Name = "RACE" Then
  For Each opt In slt.getElementsByTagName("option")
   If opt.Text = strFileData(1) Then
    opt.Selected = True
    slt.onchange
    Exit For
   End If
  Next
 End If
Next


続いて式別。予想ファイルの3項目目(2)

For Each slt In objFrame(1).document.getElementsByTagName("select")
 If slt.Name = "SHIKI" Then
  For Each opt In slt.getElementsByTagName("option")
   If opt.Text = strFileData(2) Then
    opt.Selected = True
    slt.onchange
    Exit For
   End If
  Next
 End If
Next


投票方式はフォーメーション固定にしてます。
流しとか追加するなら、同じ要領でできますね。

For Each slt In objFrame(1).document.getElementsByTagName("select")
 If slt.Name = "HOUSHIKI" Then
  For Each opt In slt.getElementsByTagName("option")
   If opt.Text = "フォーメーション" Then
    opt.Selected = True
    slt.onchange
    Exit For
   End If
  Next
 End If
Next


金額は予想ファイルの7項目目(6)
「KINGAKU」という名前のテキストボックスに値をぶち込むだけです。

txtKin = objFrame(1).document.getElementsByName("KINGAKU")
txtKin.Value = strFileData(6)

sleep 1000 ’ 1秒待機



ここまでいくと、フレーム2(真ん中の赤)に頭数分のチェックボックスが出てきます。



ここでは
列は馬1「C1」、馬2「C2」、馬3「C3」
んで
行は馬番マイナス1の番号が名前になっています。

馬1の5番なら「C1の4」
馬2の3番と6番と9番なら「C2の2、C2の5、C2の8」
にそれぞれチェックを入れるだけです。

予想ファイルの4項目目(3)をハイフンで分割して、C1の馬番マイナス1にチェック

splittedResult = Split(strFileData(3), "-")
For Each output In splittedResult
 objFrame(2).document.getElementsByName("C1")(output - 1).Checked = True
Next


馬2も同じ。予想ファイルの5項目目(4)をC2列へ。

splittedResult = Split(strFileData(4), "-")
For Each output In splittedResult
 objFrame(2).document.getElementsByName("C2")(output - 1).Checked = True
Next


馬3も同じ。ただ馬連馬単ワイドの場合は、この処理を飛ばすように書いたほうがいいです。

splittedResult = Split(strFileData(5), "-")
For Each output In splittedResult
 objFrame(2).document.getElementsByName("C3")(output - 1).Checked = True
Next



ここまで来たら、
チェックボックスをクリックしたときに動くJavaScriptを呼びます。
馬1の馬番1をクリックしたテイで。(実際にチェックはしません)
このonClickを動かさないと、組数(AMOUNT)が計算されないのです。

objFrame(2).document.getElementsByName("C1")(0).onclick


これで組数が表示されるので、その数字×金額(合計金額)を控えておきましょう。

txtAmount = objFrame(2).document.getElementsByName("AMOUNT")
Kingaku = Kingaku + txtAmount.Value * strFileData(6)



んで、フレーム1(左)の「入力決定」ボタンを探して押します。

For Each objTag In objFrame(1).document.getElementsByTagName("input")
 If InStr(objTag.outerHTML, "入力決定") > 0 Then
  objTag.Click
  Exit For
 End If
Next


んで次の行の処理へ。ループ2(ファイルの行があるだけループ)を繰り返します。

Sleep 2000 ’ 念のため2秒待機
Loop ’ ループ2の戻り



すべての行の入力を終えたら、
フレーム3(右)の「投票内容確認へ」のボタンを探して押します。

ただ、このボタンを押すとき
普通に押すと制御が利かなくなりますので(このあとダイアログが出てくるので)
非同期で押すようにしましょう。

非同期でボタンを押したら、ちょっと時間を空けて(2秒)
ダイアログ(「Web ページからのメッセージ」)のウインドウを探してOKボタンを押してあげます。

btnIdx = 0
For Each objTag In objFrame(3).document.getElementsByTagName("input")
 If InStr(objTag.outerHTML, "投票内容確認へ") > 0 Then
  objFrame(3).document.Script.setTimeout "javascript:document.getElementsByTagName(""input"")(" & CStr(btnIdx) & ").click()", 10
  Sleep 2000
  hwindow = FindWindow("#32770", "Web ページからのメッセージ")
  PostMessage hwindow, WM_COMMAND, vbOK, 0&
  Exit For
 End If
 btnIdx = btnIdx + 1
Next


ページが完全に表示されるまで待機。

Do While objIE.Busy = True Or objIE.readyState <> 4
 DoEvents
Loop
sleep 2000 ’ 念のため2秒待機




これまでと同じやり方ですね。
暗証番号は「MEMBERPASSR」、投票金額は「TOTALMONEYR」という名前になっていますので
それぞれ入れて、「投票する」ボタンを探して押します。
この時も先ほど同様、非同期でボタンを押して、ダイアログのOKボタンまで押しましょう。

objIE.document.BET_CHECK.MEMBERPASSR.Value = "0000"
objIE.document.BET_CHECK.TOTALMONEYR.Value = CStr(Kingaku * 100)

btnIdx = 0
For Each objTag In objIE.document.getElementsByTagName("input")
 If InStr(objTag.outerHTML, "投票する") > 0 Then
  objIE.document.Script.setTimeout "javascript:document.getElementsByTagName(""input"")(" & CStr(btnIdx) & ").click()", 10
  Sleep 2000
  hwindow = FindWindow("#32770", "Web ページからのメッセージ")
  PostMessage hwindow, WM_COMMAND, vbOK, 0&
  Exit For
 End If
 btnIdx = btnIdx + 1
Next


ページが完全に表示されるまで待機。

Do While objIE.Busy = True Or objIE.readyState <> 4
 DoEvents
Loop
sleep 2000 ’ 念のため2秒待機



これで投票完了です。
InternetExplorerを閉じて、次のファイルを開く準備をして
ループ1(ファイルがあるだけループ)を繰り返します。

objIE.Quit
Set objIE = Nothing
strFile = Dir$

Loop ’ ループ1の戻り



これで終了です。

---

今回作ったのは予想ファイルを使って読み込んで投票する仕組みですが
Excelのセルを読み込んで投票する仕組みも簡単にできると思います。

適当に直して使ってください。


どっちにしても大事なのは
「予想するロジック」(今回でいう「予想ファイルの作り方」)だと思いますので。


人気ブログランキングへ 


このネタへのコメント:


コメントはありません。
お名前(入力必須):
ログインID(SBメンバーズの方)(任意):
(SBメンバーズの方から頂いたコメントは、管理人の承認なしで書き込まれます。)

タグは使えません。

URL(任意):
メール(任意):

右に「さんでーぶりーず」と入力してください。