JRAのHPからオッズ取得 三連複のオッズ取得に挑戦 三連複のオッズをExcelに取り込む

JRAのHPからオッズ取得 三連複のオッズ取得に挑戦 三連複のオッズをExcelに取り込む

JRAのHPからオッズ取得 三連複のオッズ取得に挑戦 三連複のオッズをExcelに取り込む

ワイドと三連複のオッズを取得したい
と質問があったので、
今回は、三連複のオッズ取得に挑戦してみます。

目次
00:00 挨拶と実行テスト
02:36 オッズのテーブルを判断してExcelに三連複オッズを取得
05:30 三連複の表を探す
08:45 1‐2,1‐3 などを tableのcaptionで判断
11:15 三連複のオッズをExcelのセルに書き出す
13:52 表の探し方ついて
16:40 場所を中京に テスト実行と解説

今回作成したソースコード↓

と合わせてみてください。
※アレンジして使ってみてください。

#オッズ取得 #ExcelVBA #三連複 #マクロ #競馬 #JRA #VBA #デバッグ #テスト

1.開催日・場所は、流用する
単勝オッズの取得から、
開催日と場所の選択は単勝オッズ取得

から流用しました。

2.三連複のオッズを押す

ここも、前回から流用(探す条件:ワイドを3連複に変えただけ)

‘リンクから、レースのTR行を探し、列 ここでは3連複などを返す 20221001追加修正
strLINK = IE_Link_InnerHTML_InStr_TR_TD(oDocument, strRACE, “3連複”)

みたいに、レースと3連複(前回はワイドでした)で指定したリンクを取り出す。

何言ってんだか・・・

オッズのリンクが
1R 単勝複勝 枠連 馬連 ワイド 馬単 3連複 3連単
2R 単勝複勝 枠連 馬連 ワイド 馬単 3連複 3連単



11R 単勝複勝 枠連 馬連 ワイド 馬単 3連複 3連単
12R 単勝複勝 枠連 馬連 ワイド 馬単 3連複 3連単

と、並んでいるので、

※前回のワイド を 3連複に直しただけです。
解説は、前回の

↑を見てください(見て、変な処理を笑ってください・・・)

3.オッズのテーブルを判断して、Excelに三連複オッズを取得

3.1 tableのcaptionで判断?さて、どうしよう・・・

JRAさんのページはしっかり作られていて、勉強になりますね。
さてさて、アプローチ、攻める糸口は・・・

1-2 3,4,5,,,18
1-3 4,5,6,,18


2-3 4,5,6,,,18
2-4 5,6,,,18


3-4 5,6,,,18
なので

馬番1のループは 最大 1~16(16-17-18が最後なので)
1
2
3


 馬番1-馬番2 の ループは、馬番2の最初は馬番1の次(あたりまえだろ)
 1-2
 2-3
 3-4

 ・
 ↑のループになる

なので、
何も考えないで、力業のループを組んでみた。
※テーブルを探すのに、無駄なループが増えるけど・・・

‘テーブルを探す
‘タグの取出しが、.getElementsByTagName(“TABLE”)で 可能なので、
For n馬番1 = 1 To 16 ‘馬番は最大18頭、16-17-18が最後なのでMAX16までループ
For n馬番2 = n馬番1 + 1 To 17 ‘1-2-3 から 1-17-18, 2-3-4,,2-17-18 MAX最終は16-17-18
‘TABLEタグを抜き 複数のテーブルをセット
Set objTABLEs = oDocument.getElementsByTagName(“TABLE”)
‘↑で代入したオブジェクトからテーブルデータを取り出す。

‘探す 1-2,1-3,,,16-17を作成する
str探す文字列 = n馬番1 & “-” & n馬番2

Set objTABLE = Nothing ‘オブジェクトを空にする
For i = 0 To objTABLEs.Length – 1 ‘テーブル数分回す
‘テーブルのcaptionが処理する1-2や1-3かチェック
If objTABLEs(i).Caption.innerText = str探す文字列 Then ‘一致したテーブルGet
Set objTABLE = objTABLEs(i) ‘みつけたらi番目を代入
Exit For
End If
Next i

‘↑で見つかったかチェックする
If objTABLE Is Nothing Then
‘見つからなかったら、終わっていたら、ループを抜ける
Exit For ‘抜ける
End If

3.2 あとは、いつもの objTABLE.Rows.Length で縦の行を移動させて書き込む

‘表をDATAシートに書き出す
‘テーブルからデータを抜き出す、書き出す
For y = 0 To objTABLE.Rows.Length – 1 ‘行のループ
‘データをセルに書く 馬番 馬番 馬番 三連複オッズ
Cells(SET_Y, 1) = n馬番1 ‘馬番キャプション
Cells(SET_Y, 2) = n馬番2 ‘
Cells(SET_Y, 3) = objTABLE.Rows(y).Cells(0).innerText ‘馬番 ここを馬番3にする
Cells(SET_Y, 4) = objTABLE.Rows(y).Cells(1).innerText ‘三連複オッズ
SET_Y = SET_Y + 1
Next y

Next n馬番2
Cells(SET_Y, 1).Select ‘.Selecで位置を移動させると
DoEvents
‘描画すると、遅くなるけど↑固まっているように見えるので

アレンジして、コードを使ってみてください。

もっと、使いやすいコード、
わかりやすい説明をしないとなぁ・・と思いつつ、失礼します。

再生リストの紹介: #JRA #オッズ を #自動取得

↑関連動画の再生リストです

—–
質問や感想などをコメント欄に気軽に書いてください。

#三流プログラマー Ken3
連絡先twitterDM →

ブログとHPを紹介 :
書きかけのメモなど は
サンプルコードなど は
三流君のHPは
に置いてあります。

再生リスト一覧は

——
このチャンネルのメンバーになって特典にアクセスしてください:
^^^^^^
がんばりましょうの #低評価 ボタン

ためになったよ #高評価 ボタン
の #リアクション 反応があるとうれしいです。
また、
#質問 , #感想 , #コメント を気軽に書き込んでください。
ありがとう。またね。(また次の動画で会えたらいいな・・・)

オッズカテゴリの最新記事