第9回 連対馬潜伏枠のサーチ

スポンサーリンク
連対馬潜伏枠とは

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

出馬表の馬名セルに色をつける

マクロを実行すると第5回で作成した出馬表が、連対馬潜伏枠の馬名セルが設定に従い下図のように彩色されます。それには第8回までのマクロができていることとします。

かいせつ
  1. 枠連4−4は132倍、馬連7−8は123倍なので枠連>馬連ということで配当フォントは赤になっています
  2. 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のIFEnd

                    Next k
            
                Next j

        Next i

End Sub
かいせつ
  1. Previewシートにある出馬表の最終行を算出します
  2. Previewシートの枠連買い目の最終行を調べます
  3. For i = 1 To 8⇒Itemシートにある8頭立の枠色を利用して、iroAに1枠の白(ColorIndex=2)から8枠の桃(ColorIndex=26)のColorIndexを順に格納します
  4. For k=1to2はSelect Case文でkが1では、フォントが赤のときの、同2では青のときのiroIndxとiroNoの設定をします
  5. iroA=iroB=iroCのColorIndexが同じならゾロ目、かつオッズのフォントが赤(青)のときの処理
  6. 検索する枠色をiroAに指定します
  7. 出馬表の枠番列b7:b24をiroAの検索範囲として指定します
    最初にヒットしたアドレスの行番号を取得し、該当セルをiroNoで塗ります
  8. 繰り返し処理のDo~Loopは繰り返す回数ではなく、繰り返す条件を指定します
  9. Doに終了条件を書かずに、そのループの中で終了条件を判定し、処理を終了します
  10. 同枠の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 出馬表作成()に続く
かいせつ
  1. Sub実行()の7ヶ所あるCallステートメントの最後にCall連対馬潜伏枠()を追加します
    これで実行ボタンをクリックすれば一連のマクロを10秒前後で実行できます

コメント

タイトルとURLをコピーしました