連対馬潜伏枠とは
連対馬潜伏枠とはゾロ目限定で、例えば16頭立で枠連”3-3”が8倍、一方馬連の”5-6”が7倍といったときに3枠をここではそう呼びます。第8回「オッズから勝負気配を読み取る」で、組合せの配当が枠連>馬連の配当セルのフォントを赤または青にしたので、今回はそれを利用して連対馬潜伏枠に入った馬名欄を彩色していきます。ただし、ひと枠1頭およびひと枠に3頭入った場合の該当枠は除外します。
連対馬潜伏枠については、毎週公開の「FactorX分析結果」で確認できます。潜伏枠が多くあるレースはそれだけ勝ちに来ている馬が多い混戦状態と判断します。
出馬表の馬名セルに色をつける
マクロを実行すると第5回で作成した出馬表が、連対馬潜伏枠の馬名セルが設定に従い下図のように彩色されます。それには第8回までのマクロができていることとします。

かいせつ
- 枠連4−4は132倍、馬連7−8は123倍なので枠連>馬連ということで配当フォントは赤になっています
- 4枠が連対馬潜伏枠になるので、馬名セルをピンクに塗ります
3枠は馬連5−6の配当に10%のゲタをはかせて、枠連>馬連になるで馬名セルの塗りは青になります
Sub 連対馬潜伏枠()
'============================================= _
ゾロ目の配当が「枠連配当>馬連配当」の場合 _
Preveiw画面の馬名欄を彩色する _
===============================================
Dim ws2 As Worksheet, ws5 As Worksheet
Dim i As Long, j As Long, k As Long
Dim iroA As Long '調べたい枠連軸の塗り色(Itemシート)
Dim iroB As Long '軸枠の枠色
Dim iroC As Long 'ヒモ枠の枠色
Dim iroD As Long '枠連配当の色(赤:枠連配当>馬連配当)
Dim iroIndx As Long
Dim iroNo As Long
Dim endRow As Long
Dim n As Long
Dim c As Range
Dim firstAddress As String
Dim bameiRow As Long
Set ws2 = Worksheets("Preview")
Set ws5 = Worksheets("Item")
With ws2
endRow = .Cells(Rows.Count, "c").End(xlUp).Row '1 出馬表の最終行算出
n = .Cells(Rows.Count, "p").End(xlUp).Row '2 枠連買い目最終行算出
End With
For i = 1 To 8 '3 1枠の白から8枠の桃まで順に実行
iroA = ws5.Cells(1 + i, "h").Interior.ColorIndex
'JはPreviewシートの枠連の目数分繰り返す
For j = 7 To n - 1
For k = 1 To 2 '4
'枠複の配当の赤フォントK=1、青フォントK=2
Select Case k
Case 1 '配当が赤フォントのケース
iroIndx = 3
iroNo = 16770559
Case 2 '配当が青フォントのケース
iroIndx = 23
iroNo = 16772300
End Select
With ws2 'Previewシート
iroB = .Cells(j, "p").Interior.ColorIndex '枠連の軸枠色
iroC = .Cells(j, "q").Interior.ColorIndex '枠連のヒモ枠色
iroD = .Cells(j, "r").Font.ColorIndex '枠連の配当文字色
End With
'ゾロ目で配当フォントが赤のとき、青のとき
If iroA = iroB And iroA = iroC And iroD = iroIndx Then '5
'Previewの出馬表の馬名セルを彩色
Application.FindFormat.Clear
Application.FindFormat.Interior.ColorIndex = iroA '6
Set c = ws2.Range("b7:b24").Find(what:="*", SearchFormat:=True) '7
firstAddress = c.Address
bameiRow = c.Row
ws2.Cells(bameiRow, "d").Interior.Color = iroNo
'もう1頭の同枠馬を探して彩色
Do '8
Set c = ws2.Range("b7:b24").Find(what:="*", _
After:=c, _
SearchFormat:=True)
If c Is Nothing Then Exit Do '9
If c.Address = firstAddress Then Exit Do
bameiRow = c.Row
ws2.Cells(bameiRow, "d").Interior.Color = iroNo '10
Loop
End If '5のIFのEnd
Next k
Next j
Next i
End Sub
かいせつ
- Previewシートにある出馬表の最終行を算出します
- Previewシートの枠連買い目の最終行を調べます
- For i = 1 To 8⇒Itemシートにある8頭立の枠色を利用して、iroAに1枠の白(ColorIndex=2)から8枠の桃(ColorIndex=26)のColorIndexを順に格納します
- For k=1to2はSelect Case文でkが1では、フォントが赤のときの、同2では青のときのiroIndxとiroNoの設定をします
- iroA=iroB=iroCのColorIndexが同じならゾロ目、かつオッズのフォントが赤(青)のときの処理
- 検索する枠色をiroAに指定します
- 出馬表の枠番列b7:b24をiroAの検索範囲として指定します
最初にヒットしたアドレスの行番号を取得し、該当セルをiroNoで塗ります - 繰り返し処理のDo~Loopは繰り返す回数ではなく、繰り返す条件を指定します
- Doに終了条件を書かずに、そのループの中で終了条件を判定し、処理を終了します
- 同枠の2頭目の馬名セルをiroAで塗ります
実行ボタンにプロシージャ連対馬潜伏を追加する
第8回で作ったコマンドボタン「実行」にsub連対馬潜伏枠を追加することで、一連のマクロを簡単に実行することができます。JRAのサイトからオッズをコピペするのに30秒あればInpOdsシートに入力でき、実行後の計算時間も10秒前後ですので、出走10分前でも事前予想の参考にすることが可能です。
標準モジュール b_出馬表作成 Option Explicit Dim ws2 As Worksheet, ws3 As Worksheet Dim ws4 As Worksheet, ws5 As Worksheet Dim tosu As Long Dim rowTop As Integer Dim c As Range Sub 実行() Application.ScreenUpdating = False ' 画面更新停止(計算中は画面が固定) Call odds表作成 Call 出馬表作成 Call 人気順オッズテーブル Call 枠連人気順縦並べ Call 馬連人気順縦並べ Call 馬単人気順縦並べ Call オッズ彩色 Call 連対馬潜伏枠 '1 Set ws2 = Worksheets("Preview") ws2.Activate Range("a1").Select Application.ScreenUpdating = True '画面更新再開 End Sub Sub 出馬表作成()に続く
かいせつ
- Sub実行()の7ヶ所あるCallステートメントの最後にCall連対馬潜伏枠()を追加します
これで実行ボタンをクリックすれば一連のマクロを10秒前後で実行できます


コメント