メインコンテンツへスキップ
見出し画像

🕊️②エクセルでデータラボのフォームとモジュールの追加・Dataの準備

    画像
    画像
    
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    Dim Cancelflg As Boolean
    Dim DLflg As Boolean
    
    Dim Retval As Long
    Dim Readcount As Long
    Dim Dlcount As Long
    Dim Lastfiletimestamp As String
    Dim Status As Long
    Dim Buff As String '*83286
    Dim Filename As String
    
    Dim i#
    Dim StartDate$
    
    '速報レース情報(成績確定後速報レース情報(出走馬名表~)レース詳細  0B15
    '速報レース情報(成績確定後)払戻        0B12
    
    '速報オッズ(全賭式)  0B30   オッズ      0B12
    
    '速報馬体重                 馬体重      0B11
    '速報開催情報(一括)                     0B14
    '速報開催情報(指定)                     0B16
       
       
    'Long JVRTOpen( String 型 dataspec , String 型 key)
    
     '指定するキー(key)
     '提供単位レース毎 "YYYYMMDDJJKKHHRR"    'または    '“YYYYMMDDJJRR”  KK=回次 HH=日次 RR=レース番
     '提供単位開催日単位 “YYYYMMDD”
    
     '※1:各イベントから返されるパラメータを key に JVRTOpen を使用する場合 イベント 通知を受信するメソッドから返されるパラメータを
     'key として JVRTOpen を 使用する場合は、Dataspec を以下のように指定してください。
     '種類               Dataspec提供単位
     '払戻確定           0B12    レース単位
     '騎手変更           0B16    変更情報発表単位(複数件の騎手変更情報を提供する場合もあります)
     '天候馬場状態変更   0B16    場単位
     'コース変更         0B16    レース単位
     '出走取消・競走除外 0B16    変更情報発表単位(複数件の出走取消・競走除外情報を提供する場合もあります)
     '発走時刻変更       0B16    変更情報発表単位(複数件の発走時刻変更情報を提供する場合もあります)
     '馬体重発表         0B11    レース単位
    
    Sub 払い戻しin()
    
    If JvMode = 6 Then 'END
    
        データラボ.Caption = "払い戻しin取得中"
        データラボ.BackColor = RGB(0, 0, 0)
        
        Cancelflg = False
        DLflg = False
        
        Erase JvHr
    
        Er = 0
        CkHr = 0 '払い戻し確認
        Sheets("出馬表").払い戻し読込JvYSt
        If RTime = "End" Or RTime = "" Then
            ラボEND
            Exit Sub
        End If
        
       開催日場トラックR
       
       '************************************************************************************HR
       JVLink1.JVInit ("EXCELSAMPLE") 'JVLinkを初期化
       Retval = JVLink1.JVRTOpen("0B15", MyDay)
       If Retval <> 0 Then
            ErNo = Retval
            JVエラー
            Exit Sub
       End If
       
       ダウンロード中
       
       While Retval <> 0
          If Cancelflg = True Then ラボEND  'キャンセルボタンチェック
          Retval = JVLink1.JVRead(Buff, 83286, Filename)
            
          If (Retval < -1) Then
                ErNo = Retval
                JVエラー
                Exit Sub
          End If
          '---------------------------------------------------------------------------HR 払戻
          If Left(Buff, 2) = "HR" Then
                JvHr(5) = 0
                JvHr(6) = 0
                Dim mRaDataHR As JV_HR_PAY
                Call SetData_HR(Buff, mRaDataHR)
             
                With mRaDataHR
                    JvDay = .id.MonthDay
                    If Mid(MyDay, 5, 4) = JvDay And JvJo = .id.JyoCD And RNo = .id.RaceNum Then '中止はRNo飛ばす
                        JvHr(1) = .PayTansyo(0).Umaban '1A馬番
                        JvHr(2) = .PayTansyo(1).Umaban '1B馬番
                        If Val(JvHr(2)) = 0 Then '1着同着無し
                            JvHr(3) = Mid$(.PayUmatan(0).Kumi, 3, 2) '2A馬番
                            JvHr(4) = Mid$(.PayUmatan(1).Kumi, 3, 2) '2B馬番
                        Else '1着同着
                            JvHr(3) = 0 '2A馬番
                            JvHr(4) = 0 '2B馬番
                        End If
                        If Val(JvHr(4)) = 0 Then '2着同着無し
                            '-------------------------------------3連単から着順
                            St1 = Mid$(.PaySanrenpuku(0).Kumi, 1, 2) '1N馬番
                            St2 = Mid$(.PaySanrenpuku(0).Kumi, 3, 2) '2N馬番
                            St3 = Mid$(.PaySanrenpuku(0).Kumi, 5, 2) '3N馬番
                            If St1 <> JvHr(1) And St1 <> JvHr(2) And St1 <> JvHr(3) Then
                                JvHr(5) = St1 '3A馬番
                            Else
                                If St2 <> JvHr(1) And St2 <> JvHr(2) And St2 <> JvHr(3) Then
                                JvHr(5) = St2 '3A馬番
                                Else
                                JvHr(5) = St3 '3A馬番
                                End If
                            End If
                            If Val(.PaySanrenpuku(1).Pay) <> 0 Then '3B'3着同着
                                St1 = Mid$(.PaySanrenpuku(1).Kumi, 1, 2)
                                St2 = Mid$(.PaySanrenpuku(1).Kumi, 3, 2)
                                St3 = Mid$(.PaySanrenpuku(1).Kumi, 5, 2)
                                If St1 <> JvHr(1) And St1 <> JvHr(2) And St1 <> JvHr(3) Then
                                  JvHr(6) = St1 '3B馬番
                                Else
                                   If St2 <> JvHr(1) And St2 <> JvHr(2) And St2 <> JvHr(3) Then
                                     JvHr(6) = St2 '3B馬番
                                   Else
                                     JvHr(6) = St3 '3B馬番
                                   End If
                             End If
                          End If
                         Else '2着同時
                           JvHr(5) = 0 '3A馬番
                           JvHr(6) = 0 '3B馬番
                         End If
                         '---------------------------------------払い
                        JvHr(7) = .PayTansyo(0).Pay '単A
                        JvHr(8) = .PayTansyo(1).Pay '単B
                        JvHr(9) = .PayFukusyo(0).Pay '複A
                        JvHr(10) = .PayFukusyo(1).Pay '複B
                        JvHr(11) = .PayFukusyo(2).Pay '複C
                        JvHr(12) = .PayFukusyo(3).Pay '複D
                        JvHr(13) = .PayFukusyo(4).Pay '複E
                        JvHr(14) = .PayUmaren(0).Pay '馬A
                        JvHr(15) = .PayUmaren(1).Pay '馬B
                        JvHr(16) = .PayWakuren(0).Pay '枠A
                        JvHr(17) = .PayWakuren(1).Pay '枠B
                        JvHr(18) = .PayWide(0).Pay 'ワイドA 1-2
                        JvHr(19) = .PayWide(1).Pay 'ワイドB 1-3
                        JvHr(20) = .PayWide(2).Pay 'ワイドC 2-3
                        JvHr(21) = .PayWide(3).Pay 'ワイドD
                        JvHr(22) = .PayWide(4).Pay 'ワイドE
                        JvHr(23) = .PayWide(5).Pay 'ワイドF
                        JvHr(24) = .PayUmatan(0).Pay '馬単A
                        JvHr(25) = .PayUmatan(1).Pay '馬単B
                        JvHr(26) = .PaySanrenpuku(0).Pay '三連複A
                        JvHr(27) = .PaySanrenpuku(1).Pay '三連複B
                        JvHr(28) = .PaySanrentan(0).Pay '三連単A
                        JvHr(29) = .PaySanrentan(1).Pay '三連単B
                        
                        XJv = 13
                        For A = 1 To 6 '着順(読込順)
                            If Val(JvHr(A)) > 0 Then
                                Sheets("出馬表").Cells(YJv, XJv) = JvHr(A)
                                XJv = XJv + 1
                            End If
                        Next
                        XJv = 17
                        For A = 9 To 13 '複勝払い戻し(読込順)
                            If Val(JvHr(A)) > 0 Then
                                Sheets("出馬表").Cells(YJv, XJv) = JvHr(A)
                                XJv = XJv + 1
                            End If
                        Next
                        CkHr = 1
                       
                    End If
                End With
          End If
          
            Label1.Caption = Buff
            DoEvents
            If Retval = -203 Then
                ErNo = Retval
                JVエラー
                Exit Sub
            End If
        Wend
        ラボEND
    End If
    
    End Sub
    
    
    Sub オッズin()
    
    Dim mRaData1 As JV_O1_ODDS_TANFUKUWAKU
    Dim mRaData2 As JV_O2_ODDS_UMAREN
    Dim mRaData3 As JV_O3_ODDS_WIDE
    Dim mRaData4 As JV_O4_ODDS_UMATAN
    Dim mRaData5 As JV_O5_ODDS_SANREN
    Static mRaData6(0) As JV_O6_ODDS_SANRENTAN
    
    If JvMode = 5 Then
    
        データラボ.Caption = "オッズin取得中"
        データラボ.BackColor = RGB(255, 0, 0)
        
        Cancelflg = False
        DLflg = False
        
        Er = 0
        Sheets("出馬表").オッズ読込JvYSt
        If RTime = "End" Or RTime = "" Then
            ラボEND
            Exit Sub
        End If
       
       
        Erase StOz
        Erase Bt
        Erase Bf
        Erase Bf2
        Erase Bw
        Erase By
        Erase By2
        Erase Be
        Erase B3f
        Erase B3t
        
       Buff = ""
       Filename = ""
       開催日場トラックR
       
       '********************************************************************O1-O6
       JVLink1.JVInit ("EXCELSAMPLE") 'JVLinkを初期化
       
       Retval = JVLink1.JVRTOpen("0B30", MyDay & JvJo & RNo)
       変換JV場
       
       If Retval <> 0 Then
            ErNo = Retval
            JVエラー
            Exit Sub
       End If
       
       ダウンロード中
       
       While Retval <> 0
          If Cancelflg = True Then ラボEND 'キャンセルボタンチェック
          Retval = JVLink1.JVRead(Buff, 83286, Filename) 'JVOpenで指定したデータを1レコードずつfilenameに取り込み
          ' JVReadエラー処理
          If (Retval < -1) Then
            ErNo = Retval
            JVエラー
            Exit Sub
          End If
          '--------------------------------------------------------------------O1 単複枠 & stoz & 中止
          If Left(Buff, 2) = "O1" Then
             Call SetData_O1(Buff, mRaData1)
             With mRaData1
                JvDay = .id.MonthDay
                If Mid(MyDay, 5, 4) = JvDay Then
                    If .head.DataKubun = "9" Then '--中止 "1"=中間 "4"=確定 "9"=中止 !オッズ提供後に中止の場合のみ"9"提供前中止はヌル
                       JvTc = "0000"
                    End If
                    TimeOz = .HappyoTime.Hour & ":" & .HappyoTime.Minute 'Oz発表時間
    
                    Sheets("出馬表").Cells(YJv, 12) = TimeOz
                    
                    変換JV場
                    
                    StOz(1) = MyDay & Mid(JvJo, 1, 2) & RNo '----年月日場R 8b
                    StOz(2) = .TorokuTosu '' 登録頭数 2b
                    StOz(3) = .SyussoTosu '' 出走頭数 2b
                    
                    StOz(4) = .FukusyoFlag '' 発売フラグ 1b
                    StOz(5) = .WakurenFlag '' 発売フラグ 枠連 1b
                    StOz(6) = .WakurenFlag '' 複勝着払キー 1b
                    
                    StOz(7) = .TotalHyosuTansyo '' 単勝票数合計 11b
                    StOz(8) = .TotalHyosuFukusyo '' 複勝票数合計 11b
                    StOz(9) = .TotalHyosuWakuren '' 枠連票数合計 11b
                    
                    For A = 0 To 17
                        St1 = .OddsTansyoInfo(A).Umaban
                        If IsNumeric(St1) = True Then
                            Bt(St1, 1) = Val(.OddsTansyoInfo(A).Odds) / 10 '4b*18
                            
                            Uma = St1
                            Uma位置
                            Sheets("出馬表").Cells(YJv, XJv + 1) = Bt(St1, 1)
                        End If
                    Next
                    For A = 0 To 17
                       St1 = .OddsFukusyoInfo(A).Umaban
                       If IsNumeric(St1) = True Then
                          Bf(St1, 1) = Val(.OddsFukusyoInfo(A).OddsLow) / 10 '4b*18
                          Bf2(St1, 1) = Val(.OddsFukusyoInfo(A).OddsHigh) / 10 '4b*18
                       End If
                    Next
                    For A = 0 To 35
                       St1 = .OddsWakurenInfo(A).Kumi
                       If IsNumeric(St1) = True Then
                          U1 = Mid$(St1, 1, 1)
                          U2 = Mid$(St1, 2, 1)
                          Bw(U1, U2, 1) = Val(.OddsWakurenInfo(A).Odds) / 10 '5b*36
                       End If
                    Next
                End If
             End With
          End If
          '----------------------------------------------------------------------O2 馬連
          If Left(Buff, 2) = "O2" Then
             Call SetData_O2(Buff, mRaData2)
             With mRaData2
                JvDay = .id.MonthDay
                If Mid(MyDay, 5, 4) = JvDay Then
                    StOz(10) = .TotalHyosuUmaren '' 馬連票数合計 11b
                    For A = 0 To 152
                       St1 = .OddsUmarenInfo(A).Kumi
                       If IsNumeric(St1) = True Then
                          U1 = Mid$(St1, 1, 2)
                          U2 = Mid$(St1, 3, 2)
                          Bu(U1, U2, 1) = Val(.OddsUmarenInfo(A).Odds) / 10 '6b*153
                       End If
                    Next
                End If
             End With
          End If
          '----------------------------------------------------------------------O3 ワイドLow
          If Left(Buff, 2) = "O3" Then
             Call SetData_O3(Buff, mRaData3)
             With mRaData3
                JvDay = .id.MonthDay
                If Mid(MyDay, 5, 4) = JvDay Then
                    StOz(11) = .TotalHyosuWide  '' ワイド票数合計 11b
                    For A = 0 To 152
                       St1 = .OddsWideInfo(A).Kumi
                       If IsNumeric(St1) = True Then
                          U1 = Mid$(St1, 1, 2)
                          U2 = Mid$(St1, 3, 2)
                          By(U1, U2, 1) = Val(.OddsWideInfo(A).OddsLow) / 10 '5b*153
                          By2(U1, U2, 1) = Val(.OddsWideInfo(A).OddsHigh) / 10 '5b*153
                       End If
                    Next
                End If
             End With
          End If
          '-----------------------------------------------------------------------O4 馬単
          If Left(Buff, 2) = "O4" Then
             Call SetData_O4(Buff, mRaData4)
             With mRaData4
                JvDay = .id.MonthDay
                If Mid(MyDay, 5, 4) = JvDay Then
                    StOz(12) = .TotalHyosuUmatan  '' 馬単票数合計 11b
                   For A = 0 To 305
                      St1 = .OddsUmatanInfo(A).Kumi
                      If IsNumeric(St1) = True Then
                         U1 = Mid$(St1, 1, 2)
                         U2 = Mid$(St1, 3, 2)
                         Be(U1, U2, 1) = Val(.OddsUmatanInfo(A).Odds) / 10 '6b*306
                      End If
                   Next
                End If
             End With
          End If
          '-----------------------------------------------------------------------O5 3連複
          If Left(Buff, 2) = "O5" Then
             Call SetData_O5(Buff, mRaData5)
             With mRaData5
                JvDay = .id.MonthDay
                If Mid(MyDay, 5, 4) = JvDay Then
                    StOz(13) = .TotalHyosuSanrenpuku  '' 3連複票数合計 11b
                    For A = 0 To 815
                       St1 = .OddsSanrenInfo(A).Kumi
                       If IsNumeric(St1) = True Then
                          U1 = Mid$(St1, 1, 2)
                          U2 = Mid$(St1, 3, 2)
                          U3 = Mid$(St1, 5, 2)
                          B3f(U1, U2, U3, 1) = Val(.OddsSanrenInfo(A).Odds) / 10 '6b*816
                       End If
                    Next
                End If
             End With
          End If
          '----------------------------------------------------------------------O6 3連単
          If Left(Buff, 2) = "O6" Then
             Call SetData_O6(Buff, mRaData6(0))
             With mRaData6(0)
                JvDay = .id.MonthDay
                If Mid(MyDay, 5, 4) = JvDay Then
                    StOz(14) = .TotalHyosuSanrentan  '' 3連単票数合計 11b
                    For A = 0 To 4895
                       St1 = .OddsSanrentanInfo(A).Kumi
                       If IsNumeric(St1) = True Then
                          U1 = Mid$(St1, 1, 2)
                          U2 = Mid$(St1, 3, 2)
                          U3 = Mid$(St1, 5, 2)
                          B3t(U1, U2, U3, 1) = Val(.OddsSanrentanInfo(A).Odds) / 10 '7b*4896
                       End If
                    Next
                End If
             End With
          End If
    
            Label1.Caption = Buff
            DoEvents
            If Retval = -203 Then
                ErNo = Retval
                JVエラー
                Exit Sub
            End If
        Wend
        ラボEND
    End If
    
    End Sub
    
    
    '*****************************************************************************************************
    Sub 開催情報in()
    If JvMode = 4 Then
        データラボ.Caption = "開催情報in取得中"
        データラボ.BackColor = RGB(255, 255, 0)
        
        Cancelflg = False
        DLflg = False
        
        Er = 0
        CkWe = 0
        Sheets("出馬表").開催情報読込JvYSt
        If RTime = "End" Or RTime = "" Then
            ラボEND
            Exit Sub
        End If
    
        開催日場トラックR
        
        '-------------------------------------------------------------------------------------------競馬開催 時間外終了
        JvDay = DateValue(Mid(MyDay, 1, 4) & "/" & Mid(MyDay, 5, 2) & "/" & Mid(MyDay, 7, 2))
        If JvDay = DateValue(Now) Then
            If TimeValue(Now) > TimeValue("09:00:00") And TimeValue(Now) < TimeValue("19:00:00") Then 'JCDay1R9:30
            Else
                Er = 1
                Debug.Print ("開催情報in で競馬開催 時間外終了 Er" & Er)
                ラボEND
                Exit Sub
            End If
        Else
            Er = 1
            Debug.Print ("開催情報in で競馬開催 日付外終了 Er" & Er)
            ラボEND
            Exit Sub
        End If
        
       '*******************************************************************************開催情報
       JVLink1.JVInit ("EXCELSAMPLE") 'JVLinkを初期化
       Retval = JVLink1.JVRTOpen("0B14", MyDay)
       If Retval <> 0 Then
          ErNo = Retval
          JVエラー
          Exit Sub
       End If
       
       ダウンロード中
    
       While Retval <> 0
          If Cancelflg = True Then ラボEND  'キャンセルボタンチェック
          Retval = JVLink1.JVRead(Buff, 83286, Filename) 'JVOpenで指定したデータを1レコードずつfilenameに取り込み
          ' JVReadエラー処理
          If (Retval < -1) Then
                ErNo = Retval
                JVエラー
                Exit Sub
          End If
            '---------------------------------------------------------------------WE 天候馬場状態
            If Left(Buff, 2) = "WE" Then
                Dim mRaDataWE As JV_WE_WEATHER
                Call SetData_WE(Buff, mRaDataWE)
                With mRaDataWE
                    
                    JvDay = .id.MonthDay
                    If Mid(MyDay, 5, 4) = JvDay And JvJo = .id.JyoCD Then
                        CkWe = 1
                        If EndDay = 0 Then
                            If JvTr = "芝" And .TenkoBaba.SibaBabaCD <> 0 Then
                                JvWe = .TenkoBaba.SibaBabaCD '0=未設定(確定前)、初期値(地、海用)1=r 2=y 3=o 4=f'最後に取得した値が、現在値
                                MyBaba変換
                                Sheets("出馬表").Cells(YJv, 11) = JvWe
                            ElseIf JvTr = "ダ" And .TenkoBaba.DirtBabaCD <> 0 Then
                                 JvWe = .TenkoBaba.DirtBabaCD   '0=未設定、初期値(地、海用)1=r 2=y 3=o 4=f'最後に取得した値が、現在値
                                 MyBaba変換
                                 Sheets("出馬表").Cells(YJv, 11) = JvWe
                            End If
                        End If
                    End If
                End With
            End If
             '---------------------------------------------------------------------AV 出走取消・競走除外
            If Left(Buff, 2) = "AV" Then
                  Dim mRaDataAV As JV_AV_INFO
                  Call SetData_AV(Buff, mRaDataAV)
                  With mRaDataAV
                  
                      JvDay = .id.MonthDay
                      If Mid(MyDay, 5, 4) = JvDay And JvJo = .id.JyoCD And RNo = .id.RaceNum Then
                          Uma = .Umaban
                          Uma位置
                          Sheets("出馬表").Cells(YJv, XJv + 1) = "取消し" 'Oz
                          
                      End If
                  End With
            End If
           
            '---------------------------------------------------------------------JC 騎手変更
            If Left(Buff, 2) = "JC" Then
                  Dim mRaDataJC As JV_JC_INFO
                  Call SetData_JC(Buff, mRaDataJC)
                  With mRaDataJC
                  
                      JvDay = .id.MonthDay
                      
                      If Mid(MyDay, 5, 4) = JvDay And JvJo = .id.JyoCD And RNo = .id.RaceNum Then
                         Uma = .Umaban
                         Uma位置
                          
                         St1 = Replace(.JCInfoAfter.KisyuName, " ", "") '全角スペース削除  .JCInfoBefore.KisyuName(前JK)
                         St1 = Mid(St1, 1, 4)
                         Sheets("出馬表").Cells(YJv, XJv + 3) = St1
                      End If
                  End With
            End If
            '---------------------------------------------------------------------CC コース変更
            If Left(Buff, 2) = "CC" Then
                  Dim mRaDataCC As JV_CC_INFO
                  Call SetData_CC(Buff, mRaDataCC)
                  With mRaDataCC
                  
                      JvDay = .id.MonthDay
                      If Mid(MyDay, 5, 4) = JvDay And JvJo = .id.JyoCD And RNo = .id.RaceNum Then
                          
                         JvTrack = .CCInfoBefore.TruckCD ' --------トラックコ-ド
                         変換JVトラック
                          
                         Sheets("出馬表").Cells(YJv, 9) = JvTrack
                         Sheets("出馬表").Cells(5 + i, 9).Interior.ColorIndex = TColor
                         Sheets("出馬表").Cells(YJv, 10) = .CCInfoBefore.Kyori '' 距離
                         
                      End If
                  End With
            End If
    
            Label1.Caption = Buff
            DoEvents
            If Retval = -203 Then
                ErNo = Retval
                JVエラー
                Exit Sub
            End If
        Wend
        
        ラボEND
    End If
    
    If JvMode = 4 Then
       データラボ.Caption = "開催情報in取得中"
       データラボ.BackColor = RGB(255, 255, 0)
       
       Cancelflg = False
       DLflg = False
       
       CkWh = 0
       
       Sheets("出馬表").開催情報読込JvYSt
       
       開催日場トラックR
    
       '************************************************************************************WH 馬体重
       JVLink1.JVInit ("EXCELSAMPLE") 'JVLinkを初期化
       Retval = JVLink1.JVRTOpen("0B11", MyDay)
       If Retval <> 0 Then
            ErNo = Retval
            JVエラー
            Exit Sub
       End If
       
       ダウンロード中
       
       While Retval <> 0
          If Cancelflg = True Then ラボEND 'キャンセルボタンチェック
          Retval = JVLink1.JVRead(Buff, 83286, Filename) 'JVOpenで指定したデータを1レコードずつfilenameに取り込み
          ' JVReadエラー処理
          If (Retval < -1) Then
            ErNo = Retval
            JVエラー
            Exit Sub
          End If
          '-------------------------------------------------------------------------WH 馬体重
          If Left(Buff, 2) = "WH" Then
                Dim mRaDataWH As JV_WH_BATAIJYU
                Call SetData_WH(Buff, mRaDataWH)
                
                With mRaDataWH
                    JvDay = .id.MonthDay
                    If Mid(MyDay, 5, 4) = JvDay And JvJo = .id.JyoCD And RNo = .id.RaceNum Then
                        CkWh = 1
                        For A = 0 To 17
                            Uma = A + 1
                            Uma位置
                            JvWh = .BataijyuInfo(A).BaTaijyu '馬体重 000=出走取消 999=計量不能 ###
                            If IsNumeric(JvWh) = True Then
                                JvWhF = .BataijyuInfo(A).ZogenFugo '増減符号 + - スペース(その他) $
                                JvWhZ = .BataijyuInfo(A).ZogenSa '増減差 999=計量不能 000=前差ナシ スペース=初出走、取消 ###
                                Sheets("出馬表").Cells(YJv, XJv + 4) = JvWh
                                Sheets("出馬表").Cells(YJv, XJv + 5) = JvWhF & JvWhZ
                            End If
                        Next
                    Else
                End If
                End With
          End If
    
            Label1.Caption = Buff
            DoEvents
            If Retval = -203 Then
                ErNo = Retval
                JVエラー
                Exit Sub
            End If
        Wend
        ラボEND
    End If
    
    End Sub
    
    
    
    Sub 発走時刻in()
    
    If JvMode = 3 Then
        データラボ.Caption = "発走時刻in取得中"
        データラボ.BackColor = RGB(255, 255, 255)
        
        Cancelflg = False
        DLflg = False
        
        Er = 0
        CkTc = 0 '発走時刻確認
        
        Sheets("出馬表").発走時刻読込JvYSt
        If RTime = "End" Or RTime = "" Then
            ラボEND
            Exit Sub
        End If
    
        開催日場トラックR
        
        '*******************************************************************************RA レース詳細 中止のみ
        JVLink1.JVInit ("EXCELSAMPLE") 'JVLinkを初期化''ラボファイル名 yyyymmddJJRR
        Retval = JVLink1.JVRTOpen("0B15", MyDay & JvJo & RNo)  'データの取り込み呼び出し
        
        If Retval <> 0 Then
           ErNo = Retval
           JVエラー
           Exit Sub
        End If
         
        ダウンロード中
        If ErNo = -999 Then  'Myエラー
            Exit Sub
        End If
       
       While Retval <> 0 '変更前Retval=-1新しいDataが無くなった -1の次は0になる
          If Cancelflg = True Then ラボEND 'キャンセルボタンチェック
          Retval = JVLink1.JVRead(Buff, 83286, Filename) 'JVOpenで指定したデータを1レコードずつfilenameにfilenameに取り込み
          ' JVReadエラー処理
          If (Retval < -1) Then
                ErNo = Retval
                JVエラー
                Exit Sub
          End If
          '--------------------------------------------------------------------レース詳細 中止
          If Left(Buff, 2) = "RA" Then
             Dim mRaDataRA As JV_RA_RACE
             Call SetData_RA(Buff, mRaDataRA)
              
             With mRaDataRA
                JvDay = .id.MonthDay
                If Mid(MyDay, 5, 4) = JvDay And JvJo = .id.JyoCD And RNo = .id.RaceNum Then
                   If .head.DataKubun = "9" Then  '中止  !!
                      JvTc = "0000"
                      Sheets("出馬表").Cells(YJv, 1) = JvTc
                      Sheets("出馬表").Cells(YJv, 1).Interior.ColorIndex = 15
                      CkTc = 2 '発走時刻変更  中止
                   End If
                 End If
              End With
           End If
        
           Label1.Caption = Buff
           DoEvents
           If Retval = -203 Then
                ErNo = Retval
                JVエラー
                Exit Sub
           End If
        Wend
       
        ラボEND
    
    End If
    
    If JvMode = 3 Then
        Sheets("出馬表").発走時刻読込JvYSt
    
        開催日場トラックR
        
       '*******************************************************************************TC 発走時刻変更
       JVLink1.JVInit ("EXCELSAMPLE") 'JVLinkを初期化
       Retval = JVLink1.JVRTOpen("0B14", MyDay)
       
       'Long JVRTOpen( String 型 dataspec , String 型 key)
       
        '指定するキー(key)
        '提供単位レース毎 "YYYYMMDDJJKKHHRR"    KK=回次 HH=日次 'または    '“YYYYMMDDJJRR”KK=回次 HH=日次
        '提供単位開催日単位 “YYYYMMDD”
       
        '※1:各イベントから返されるパラメータを key に JVRTOpen を使用する場合 イベント 通知を受信するメソッドから返されるパラメータを
        'key として JVRTOpen を 使用する場合は、Dataspec を以下のように指定してください。
        '種類               Dataspec提供単位
        '払戻確定           0B12    レース単位
        '騎手変更           0B16    変更情報発表単位(複数件の騎手変更情報を提供する場合もあります)
        '天候馬場状態変更   0B16    場単位
        'コース変更         0B16    レース単位
        '出走取消・競走除外 0B16    変更情報発表単位(複数件の出走取消・競走除外情報を提供する場合もあります)
        '発走時刻変更       0B16    変更情報発表単位(複数件の発走時刻変更情報を提供する場合もあります)
        '馬体重発表         0B11    レース単位
        
        
       If Retval <> 0 Then
          ErNo = Retval
          JVエラー
          Exit Sub
       End If
       
       ダウンロード中
    
       While Retval <> 0
          If Cancelflg = True Then ラボEND  'キャンセルボタンチェック
          Retval = JVLink1.JVRead(Buff, 83286, Filename) 'JVOpenで指定したデータを1レコードずつfilenameに取り込み
          ' JVReadエラー処理
          If (Retval < -1) Then
                ErNo = Retval
                JVエラー
                Exit Sub
          End If
            '--------------------------------------------------------------------TC 発走時刻変更
            If Left(Buff, 2) = "TC" Then
                  Dim mRaDataTC As JV_TC_INFO
                  Call SetData_TC(Buff, mRaDataTC)
                  
                  With mRaDataTC
                      JvDay = .id.MonthDay
                      If Mid(MyDay, 5, 4) = JvDay And .TCInfoAfter.Ji & .TCInfoAfter.Fun <> .TCInfoBefore.Ji & .TCInfoBefore.Fun And JvJo = .id.JyoCD And RNo = .id.RaceNum Then '変更有
                         JvTc = .TCInfoAfter.Ji & .TCInfoAfter.Fun 'hh & mm
                         Sheets("出馬表").Cells(YJv, 1) = JvTc
                         CkTc = 1 '発走時刻変更
                     End If
                  End With
            End If
        
            Label1.Caption = Buff
            DoEvents
            If Retval = -203 Then
                ErNo = Retval
                JVエラー
                Exit Sub
            End If
       Wend
    
       ラボEND
       
    End If
    
    End Sub
    
    
    Sub 過去馬in()
    If JvMode = 2 Then  '****************************************************************過去馬
        データラボ.Caption = "過去馬in取得中"
        データラボ.BackColor = RGB(255, 255, 255)
        
        Cancelflg = False
        DLflg = False
        
        Er = 0
        BameiBk = "" 'バックアップ馬名
        CkKako = 0 '過去馬確認
       
        
        過去馬日付
        
        
        JVLink1.JVInit ("EXCELSAMPLE") 'JVLinkを初期化
        Retval = JVLink1.JVOpen("RCVN", StartDate, 2, Readcount, Dlcount, Lastfiletimestamp)
        
        'RCOV→RCVN:非蓄積系ソフト用 補てん情報(レース情報補てん)に含まれる馬毎レース情報は競走馬毎(血統登録番号毎昇順)に直近レース情報から過去レース情報の順(年月日場回日R降順)で収録することとします
        
        'データ仕様変更に伴い、データ種別が変更されています。(例)RCOV→RCVN変更前のデータ種別では8/8以降のデータは取得できません。
    
    
        '蓄積系データのRACEを20040801000000以降について取り込み呼び出し
        '【構文】Long JVOpen( String 型 dataspec , String 型 fromtime , Long 型 option , Long型 readcount , Long 型 downloadcount , String 型 lastfiletimestamp );
        
        'dataspec に指定したデータの読出し開始ポイントを時刻(YYYYMMDDhhmmss の形式)で指定します。ここで指定した時刻より大きくかつ現在時刻までに提供されたデータが読み出しの対象となります。
        'fromtime
        
        'option = 1 通常データ      蓄積系ソフトがデータをメンテナンスする際の差分データの読み出しの場合は1を指定します。
                                    '1を指定した場合は全てのデータの中から dataspec,fromtime に該当するデータが読み出されます。
        
        'option = 2 今週データ      非蓄積系ソフトが今週ぶんのデータのみを読み出したい場合には2を指定します。
                                    '2を指定すると直近の未来のレースに関するデータ(出走予定馬の過去走情報を含む)と直前のレースの成績関連のデータに該当するデータだけを読み出します。
        
        'option = 3 セットアップデータ
        'option = 4 ダイアログ無しセットアップデータ(初回のみダイアログを表示します。)セットアップを分割して行いたい場合(データ種別毎にセットアップを行う場合等)には、    4を指定します。
                                    '4を指定した場合は、セットアップデータの取得元を指定するダイアログが初回のみ表示され2回目以降は初回に指定した取得元にてセットアップが行われます。
        'readcount                  dataspec,fromtime,option で指定した条件に該当する全ファイル数が返されます。呼び出し時に値をセットする必要はありません。
        
        'downloadcount              readcount で返された数のうちダウンロードあるいはスタートキット(CD/DVD-ROM)からのコピーが必要なファイルの数が返されます。
        
        'lastfiletimestamp          dataspec,fromtime,option で指定した条件に該当する全ファイルのうち最も新しいファイルのタイムスタンプが
                                    'YYYYMMDDhhmmss の形式で返されます。このタイムスタンプは次に JVOpen を呼び出す場合に fromtime として指定するために必要ですので
                                    'レジストリやファイルまたはデータベースなどに保存しておく必要があります。
                                    
                                    'また、lastfiletimestamp の設定で JVRead/JVGets の中断・再開が可能です。設定方法は以下の通り。
                                    '・通常データの中断・再開
                                    '最後に読込んだファイルの m_CurrentFileTimestamp を保持し、再開時の JVOpen のfromtime に、保持している m_CurrentFileTimestamp を設定することで JVRead/JVGets
                                    'を再開することができます。(dataspec を個別に指定した場合は dataspec 毎に保持を行う。)
        
                                    '・セットアップデータの中断・再開 最後に読込んだファイル名を保持し、再開時には前回と同じパラメータにて JVOpen を行い、保 持しているファイル名まで JVSkip を行う事で
                                    'JVRead/JVGets を再開することができます。 (dataspec を個別に指定した場合は dataspec 毎に保持を行う。)
                                    '******************************************************************************************************************************
                                    '以下の option パラメータと dataspec の組み合わせは指定できません。
                                    'Option dataspec に指定できないデータ種別 ID
                                    '1 TCOV , RCOV
                                    '2 DIFF , BLOD, SLOP, YSCH, COMM, MING
                                    '3, 4 TCOV,RCOV
        
        
        If (Retval < 0) Then 'JVOpenエラー処理
            ErNo = Retval
            JVエラー
            Exit Sub
        End If
        
        '------------------------------------------------------ファイルのダウンロード mRaData As JV_RA_RACE
        Dim mSEdata As JV_SE_RACE_UMA
        Dim mUMdata As JV_UM_UMA
        
        ダウンロード中
        
        
        While Retval <> 0
            
            If Cancelflg = True Then ラボEND 'キャンセルボタンチェック
           
            Retval = JVLink1.JVRead(Buff, 40000, Filename) 'JVOpenで指定したデータを1レコードずつ取り込み
            
            If (Retval < -1) Then ' JVReadエラー処理'JVRTOpenこけたらJVOpenが行なわれていない
                ErNo = Retval
                JVエラー
                Exit Sub
    
            End If
            '******  3.馬毎レース情報**************************************************
            If Left(Buff, 2) = "SE" Then '---------------------------------------------SE
                Call SetData_SE(Buff, mSEdata) 'JVData構造体にRAのレコードをセットする
                
                With mSEdata
                    St1 = .Bamei
                    '-------------------------------------------------前走タイム差
                    JvSa = Val(.TimeDiff) * 0.1
                    
                    If Val(.TimeDiff) = 0 Then
                        If Mid(.TimeDiff, 1, 1) = "+" Then  ' タイム差 1着馬とのタイム差を設定(自身が1着の場合は2着馬を設定)
                            JvSa = "+" & JvSa         '符号(+または-)+99秒9 符号は1着:-、2着以下:+
                        Else                                '出走取消・競走除外・発走除外・競走中止の場合は "9999" を設定
                            JvSa = "-" & JvSa
                        End If
                    ElseIf Mid(.TimeDiff, 1, 1) = "+" Then  ' タイム差 1着馬とのタイム差を設定(自身が1着の場合は2着馬を設定)
                        JvSa = "+" & JvSa         '符号(+または-)+99秒9 符号は1着:-、2着以下:+
                    Else                                '出走取消・競走除外・発走除外・競走中止の場合は "9999" を設定
                    
                    End If
                     '------------------------------------------------SE予備①
                     '変数に代入する
                  
                    If BameiBk = St1 Then
                        '同一馬名スキップ
                        
                    Else '---------------------------------馬名変更でその馬の過去Data終わりで処理
                        If BameiBk <> "" Then '初回以外
                            If YJv <= 40 Then
                                '------------------------------------------------------過去馬を書き出し
                                Cells(YJv, XJv + 7) = Zen(1, 1) & " _" & Zen(2, 1) '前走日付
                                Cells(YJv, XJv + 8) = Zen(1, 2) & " _" & Zen(2, 2)  ' 着差
    '                            Cells(YJv, XJv + 9) = Zen(1, 3) & " _" &  Zen(2, 3) 'SE予備③ Sub タタキ前走Dataで代入
                                
                            End If
                        End If
                        
                        '---------------------------------------------------------------過去馬初期化
                        Erase Zen '過去10 カテゴリ3
                        ZenS = 1 '過去数
                        馬名検索 '初戦は馬名無い
                        BameiBk = St1
                    End If
                    
                    If YJv > 40 Then
                        'Debug.Print ("馬名" & .Bamei & "!!見つかりません")
                        'Stop
                    Else
                        CkKako = 1
                        JvUmaDay2 = .id.Year & "/" & Mid(.id.MonthDay, 1, 2) & "/" & Mid(.id.MonthDay, 3, 2)
                        
                        If JvUmaDay2 = "//" Then
                             Zen(ZenS, 1) = "初" 'データ無し(初戦)で終了
                        ElseIf ZenS = 1 Then
                            JvUmaDay1 = Cells(5, 2) & " /" & Mid(Cells(5, 3), 1, 2) & " /" & Mid(Cells(5, 3), 3, 2) '休み明け判定用 レース日
                            前走Data
                            
                        ElseIf 2 <= ZenS And ZenS <= 10 Then
                            JvUmaDay1 = Zen(ZenS - 1, 1)
                            前走Data
                        Else '10<=ZenS
                            '過去数上限スキップ
                        End If
                        
                        
                    End If
                End With
              '****** 11.競走馬マスタ******************************************************
            ElseIf Left(Buff, 2) = "UM" Then '-----------------------------------------------UM
                Call SetData_UM(Buff, mUMdata) 'JVData構造体にUMのレコードをセットする
                
                With mUMdata
                
                    St1 = .Bamei
                    馬名検索
                    
                    Cells(YJv, XJv + 10) = .Ketto3Info(0).Bamei  ' '<3代血統情報>
                    'Cells(YJv, XJv - 2 + 11) ='UM予備
                End With
                
            Else
                JVLink1.JVSkip
            End If
            
            Label1.Caption = Buff
            DoEvents
            
            If Retval = -203 Then
                ErNo = Retval
                JVエラー
                Exit Sub
            End If
        Wend
            
        ラボEND
    
    End If
    
    
    End Sub
    
    
    Sub 出馬表in()
    
    If JvMode = 1 Then
        
        データラボ.Caption = "出馬表in取得中"
        データラボ.BackColor = RGB(255, 255, 255)
        
        CommandButton1.Enabled = False '処理中はボタンを押させない
        
        Cancelflg = False
        DLflg = False
        
        i = 0 'R数+1
        
        Sheets("出馬表").Cells(3, 5) = "" 'データ区分
        Er = 0
        CkDeUma = 0 '出馬表チェック
        
        出馬表日付
        
        JVLink1.JVInit ("EXCELSAMPLE") 'JVLinkを初期化
        Retval = JVLink1.JVOpen("RACE", StartDate, 2, Readcount, Dlcount, Lastfiletimestamp)
        
        '蓄積系データのRACEを20040801000000以降について取り込み呼び出し
        '【構文】Long JVOpen( String 型 dataspec , String 型 fromtime , Long 型 option , Long型 readcount , Long 型 downloadcount , String 型 lastfiletimestamp );
        
        'dataspec に指定したデータの読出し開始ポイントを時刻(YYYYMMDDhhmmss の形式)で指定します。ここで指定した時刻より大きくかつ現在時刻までに提供されたデータが読み出しの対象となります。
        'fromtime
        
        'option = 1 通常データ      蓄積系ソフトがデータをメンテナンスする際の差分データの読み出しの場合は1を指定します。
                                    '1を指定した場合は全てのデータの中から dataspec,fromtime に該当するデータが読み出されます。
        
        'option = 2 今週データ      非蓄積系ソフトが今週ぶんのデータのみを読み出したい場合には2を指定します。
                                    '2を指定すると直近の未来のレースに関するデータ(出走予定馬の過去走情報を含む)と直前のレースの成績関連のデータに該当するデータだけを読み出します。
        
        'option = 3 セットアップデータ
        'option = 4 ダイアログ無しセットアップデータ(初回のみダイアログを表示します。)セットアップを分割して行いたい場合(データ種別毎にセットアップを行う場合等)には、    4を指定します。
                                    '4を指定した場合は、セットアップデータの取得元を指定するダイアログが初回のみ表示され2回目以降は初回に指定した取得元にてセットアップが行われます。
        'readcount                  dataspec,fromtime,option で指定した条件に該当する全ファイル数が返されます。呼び出し時に値をセットする必要はありません。
        
        'downloadcount              readcount で返された数のうちダウンロードあるいはスタートキット(CD/DVD-ROM)からのコピーが必要なファイルの数が返されます。
        
        'lastfiletimestamp          dataspec,fromtime,option で指定した条件に該当する全ファイルのうち最も新しいファイルのタイムスタンプが
                                    'YYYYMMDDhhmmss の形式で返されます。このタイムスタンプは次に JVOpen を呼び出す場合に fromtime として指定するために必要ですので
                                    'レジストリやファイルまたはデータベースなどに保存しておく必要があります。
                                    
                                    'また、lastfiletimestamp の設定で JVRead/JVGets の中断・再開が可能です。設定方法は以下の通り。
                                    '・通常データの中断・再開
                                    '最後に読込んだファイルの m_CurrentFileTimestamp を保持し、再開時の JVOpen のfromtime に、保持している m_CurrentFileTimestamp を設定することで JVRead/JVGets
                                    'を再開することができます。(dataspec を個別に指定した場合は dataspec 毎に保持を行う。)
        
                                    '・セットアップデータの中断・再開 最後に読込んだファイル名を保持し、再開時には前回と同じパラメータにて JVOpen を行い、保 持しているファイル名まで JVSkip を行う事で
                                    'JVRead/JVGets を再開することができます。 (dataspec を個別に指定した場合は dataspec 毎に保持を行う。)
                                    '******************************************************************************************************************************
                                    '以下の option パラメータと dataspec の組み合わせは指定できません。
                                    'Option dataspec に指定できないデータ種別 ID
                                    '1 TCOV , RCOV
                                    '2 DIFF , BLOD, SLOP, YSCH, COMM, MING
                                    '3, 4 TCOV,RCOV
        
        
        If (Retval < 0) Then 'JVOpenエラー処理
            ErNo = Retval
            JVエラー
            Exit Sub
        End If
        
        '------------------------------------------------------ファイルのダウンロード mRaData As JV_RA_RACE
        Dim mRAdata As JV_RA_RACE
        Dim mSEdata As JV_SE_RACE_UMA
        
        ダウンロード中
        If ErNo = -999 Then
            Exit Sub
        End If
    
        
        While Retval <> 0
            
            If Cancelflg = True Then ラボEND 'キャンセルボタンチェック
             
            Retval = JVLink1.JVRead(Buff, 40000, Filename) 'JVOpenで指定したデータを1レコードずつ取り込み
            
            If (Retval < -1) Then ' JVReadエラー処理'JVRTOpenこけたらJVOpenが行なわれていない
                ErNo = Retval
                JVエラー
                Exit Sub
    
            End If
            '****** 2.レース詳細 *********************************************************
            If Left(Buff, 2) = "RA" Then  '-------------------------------------------------RA
                Call SetData_RA(Buff, mRAdata) 'JVData構造体にRAのレコードをセットする
                
                With mRAdata
                   If i = i Then
                      CkDeUma = .head.DataKubun 'データ区分 日曜日から読み込み特別Rは区分2
                      Sheets("出馬表").Cells(3, 5) = CkDeUma
                   End If
                   Sheets("出馬表").Cells(5 + i, 1) = CStr(.HassoTime) '------発走時刻  'HassoTimeBefore '変更前発走時刻(今週ぶんのデータは空)
                   Sheets("出馬表").Cells(5 + i, 2) = .id.Year ''------ 開催年
                   Sheets("出馬表").Cells(5 + i, 3) = CStr(.id.MonthDay) '-- 開催月日
                   
                   JvJo = .id.JyoCD
                   変換JV場
                   Sheets("出馬表").Cells(5 + i, 4) = JvJo
                   Sheets("出馬表").Cells(5 + i, 5) = .id.RaceNum ''--- レース番号
                   Sheets("出馬表").Cells(5 + i, 6) = .RaceInfo.Hondai 'レース名
                   
                   
                   JvGrade = .GradeCD '----------------------------- '' グレードコード
                   変換JVグレード
                   If JvGrade = "000" Then
                   
                       For A = 0 To 4
                           JvGrade = .JyokenInfo.JyokenCD(A) ' -競走条件コード  0-4 28 2歳条件競走条件コード
                       '                                                                   29 3歳条件競走条件コード
                       '                                                                   30 4歳条件競走条件コード
                       '                                                                   31 5歳以上条件競走条件コード
                       '                                                                   32 最若年条件
                           If Val(JvGrade) > 0 Then Exit For
                       Next
                       変換JV競争条件
                   End If
                   Sheets("出馬表").Cells(5 + i, 7) = CStr(JvGrade)
                   
                   Sheets("出馬表").Cells(5 + i, 8) = .TorokuTosu '' ----登録頭数
                   JvTrack = .TrackCD ' ----------------------------------トラックコード
                   変換JVトラック
                   
                   Sheets("出馬表").Cells(5 + i, 9) = JvTrack
                   Sheets("出馬表").Cells(5 + i, 9).Interior.ColorIndex = TColor
                   
                   Sheets("出馬表").Cells(5 + i, 10) = .Kyori  '' -------距離
                   If .TenkoBaba.SibaBabaCD > 0 Then ''芝馬場状態コード ダR時=0 ?未設定・未整備時の初期値=0
                       JvBaba = .TenkoBaba.SibaBabaCD ''--------- -------芝馬場状態コード
                   Else
                       JvBaba = .TenkoBaba.DirtBabaCD '' ----------------ダート馬場状態コード
                   End If
                   変換JV馬場状態
                   
                   Sheets("出馬表").Cells(5 + i, 11) = JvBaba '-----------------馬場状態コード
                   
                   'Sheets("出馬表").Cells(5 + i, 21) ='RA予備
                 End With
                i = i + 1
            '******  3.馬毎レース情報****************************************************
            ElseIf Left(Buff, 2) = "SE" Then '---------------------------------------------SE
                Call SetData_SE(Buff, mSEdata) 'JVData構造体にRAのレコードをセットする
                
                With mSEdata
                    
                    YJv = 5
                    JvJo = mSEdata.id.JyoCD
                    変換JV場
                    JvDay = .id.MonthDay '
                    Do
                        
                        If Cells(YJv, 3) = JvDay And Cells(YJv, 4) = JvJo And Cells(YJv, 5) = Val(.id.RaceNum) Then '' レース番号
                            Exit Do
                        Else
                            YJv = YJv + 1
                            If YJv > 81 Then Stop
                        End If
                    Loop
                    
                    Uma = .Umaban '' ----------------------馬番
                    If Uma > 0 Then 'データ区分1の時0
                        Uma位置
                        Cells(YJv, XJv) = Uma
                        Cells(YJv, XJv).Interior.ColorIndex = 33
                        
                        Cells(YJv, XJv + 2) = .Bamei ''------- 馬名
                        
                        St1 = Replace(.KisyuRyakusyo, " ", "") '全角スペース削除
                        Cells(YJv, XJv + 3) = St1  '騎手名略称
                        
                        Cells(YJv, XJv + 4) = .BaTaijyu ''---- 馬体重
                        Cells(YJv, XJv + 5) = .ZogenSa ''----- 増減差
                        'cells(yjv,xjv+6)='SE予備
                    End If
                End With
           
            Else
                JVLink1.JVSkip
            End If
            
            Label1.Caption = Buff
            DoEvents
            If Retval = -203 Then
                ErNo = Retval
                JVエラー
                Exit Sub
            End If
        Wend
        If i < 1 Then i = 1
        Cells(i, 1).Activate
        Cells(1, 1) = i
        
        ラボEND
    
    End If
    
    End Sub
    
    
    Sub 前走Data()
    '休み明け(10週以上開く) 77で休み、77で連判定有 競争除外もカウントする?デビュー戦は休み明け初戦としては扱われません。
    St1 = Replace(JvUmaDay1, "休", "")
    St2 = Replace(JvUmaDay2, "休", "")
    
    If DateValue(St1) - DateValue(St2) >= 69 Then '休み明け(10週以上開く)
        Zen(ZenS, 1) = St2 & "休"  '休み明けで終了
    Else
        Zen(ZenS, 1) = St2 '前走日
    End If
    'Zen(何走前, 条件1・条件2・・)
    
    Zen(ZenS, 2) = JvSa ' 着差
    'Zen(ZenS, 3) = SE予備②
    
    ZenS = ZenS + 1
    If ZenS = 11 Then Zen(ZenS, 1) = "以上"
    
    End Sub
    
    
    Sub 馬名検索()
    
    Uma = 19
    Uma位置
    X = XJv
    
    For YJv = 5 To 45
        For XJv = XUma1 To X Step 12
            If Cells(YJv, XJv + 2) = St1 Then Exit Sub
        Next
    Next
    End Sub
    
    
    Sub 過去馬日付()
    
    If Hour(Now) > 19 Then
        StartDate = -4
    Else
        StartDate = -5
    End If
    
    
    StartDate = date + Val(StartDate) '。
    StartDate = Format(StartDate, "yyyymmdd") & "010100"
    
    
    
    End Sub
    
    
    Sub 出馬表日付()
    
    If Hour(Now) >= 19 Then '薄暮最終18:30 ダービーDay最終17:00  !
        StartDate = 1
    Else
        StartDate = -1
    End If
    
    StartDate = date + Val(StartDate) '当日ダメ !fromtime より大きい時刻に該当するデータを取得します。
    StartDate = Format(StartDate, "yyyymmdd") & "010100"
    
    Sheets("出馬表").Cells(1, 2) = StartDate
    
    End Sub
    
    
    Sub ラボEND()
    
    JVLink1.JVClose '一通り読み込みが終わった後はJVCloseを行う
    
    If Cancelflg = True Then
        MsgBox "キャンセルされました。"
    End If
    
    CommandButton3.Caption = "Exit"
    DLflg = False
    
    CommandButton1.Enabled = True 'ボタンを押せる
    データラボ.Hide '自動でデータラボ閉じる
    
    End Sub
    
    
    Private Sub CommandButton1_Click()
    
    If JvMode = 1 Then
        出馬表in
    ElseIf JvMode = 2 Then
        過去馬in
    ElseIf JvMode = 3 Then
        発走時刻in
    ElseIf JvMode = 4 Then
        開催情報in
    ElseIf JvMode = 5 Then
        オッズin
    ElseIf JvMode = 6 Then
        払い戻しin
    Else
        Stop
    End If
    
    End Sub
    
    
    Private Sub CommandButton1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    
    End Sub
    
    
    Private Sub CommandButton2_Click()
        Retval = JVLink1.JVSetUIProperties()
        'JVSetUIPropatiesエラー処理
        If (Retval < 0) Then
            MsgBox ("エラーのためJV-Linkの設定に失敗しました。")
        End If
    End Sub
    
    
    Private Sub CommandButton3_Click()
        If DLflg = True Then
            Cancelflg = True
        Else
            Unload Me
        End If
    End Sub
    
    
    Sub ダウンロード中()
    Status = 0
    DLflg = True
    CommandButton3.Caption = "キャンセル"
    DLTime = Timer
    
    Do While Status <> Dlcount
    
        
        If Timer - DLTime > 120 Then
            ErNo = -999 'Myエラー
            Debug.Print ("***Sub ダウンロード中 でタイムオーバー発生 JvMode" & JvMode)
            JVエラー
            
            Exit Sub
        End If
        
        
        If Cancelflg = True Then Exit Do 'キャンセルボタンチェック
        Status = JVLink1.JVStatus
        Label1.Caption = Dlcount & "ダウンロード中  ファイルダウンロード完了"
        DoEvents
        Sleep (120)
    Loop
    
    
    Cancelflg = False 'キャンセル用フラグ初期化
    
    Retval = 1
    End Sub
    
    
    Sub JVエラー() 'JVOpen/JVRTOpen JVRead/JVGets
    
    If ErNo = -1 Then Debug.Print ("ErNo = -1 該当データ無し指定されたパラメータに合致する新しいデータがサーバーに存在しない。又は、最新バージョンが公開され、ユーザーが最新バージョンのダウンロードを選択しました。")
    If ErNo = -2 Then Debug.Print ("セットアップダイアログでキャンセルが押されたセットアップ用データの取り込み時にユーザーがダイアログでキャンセルを押ました。JVCloseを呼び出して取り込み処理を終了してください")
    If ErNo = -111 Then Debug.Print ("dataspecパラメータが不正パラメータの渡し方かパラメータの内容に問題があると思われます。サンプルプログラム等を照し、正しくパラメータがJV-Linkに渡っているか確認してください。")
    
    If ErNo = -112 Then Debug.Print ("fromtimeパラメータが不正(読み出し開始ポイント時刻不正)")
    If ErNo = -113 Then Debug.Print ("fromtimeパラメータが不正(読み出し終了ポイント時刻不正)")
    If ErNo = -114 Then Debug.Print ("keyパラメータが不正同上")
    If ErNo = -115 Then Debug.Print ("optionパラメータが不正同上")
    If ErNo = -116 Then Debug.Print ("dataspecとoptionの組み合わせが不正同上")
    
    If ErNo = -201 Then Debug.Print ("JVInitが行なわれていないJVOpen/JVRTOpenに先立ってJVInitが呼ばれていないと思われます。必ずJVInitを先に呼び出してください。")
    If ErNo = -202 Then Debug.Print ("ErNo = -202 前回のJVOpen/JVRTOpenに対してJVCloseが呼ばれていない(オープン中)前回呼び出したJVOpen/JVRTOpenがJVCloseによってクローズされていないと思われます。JVOpen/JVRTOpenを呼び出した後は次に呼び出すまでの間にJVCloseを必ず呼び出してください。")
    If ErNo = -203 Then Debug.Print ("JVOpenが行なわれていないJVStatusに先立ってJVOpenが呼ばれていないと思われます。必ずJVOpenを先に呼び出してください。")
    If ErNo = -211 Then Debug.Print ("レジストリ内容が不正(レジストリ内容が不正に変更された)JV-Linkはレジストリに値をセットする際に値のチェックを行います(例えばサービスキーの桁数など)が、レジストリから値を読み出して使用する際に問題が発生するとこのエラーが発生します。レジストリが直接書き換えられたなどの状況が考えられない場合にはJRA-VANへご連絡ください。")
    
    If ErNo = -301 Then Debug.Print ("認証エラーサービスキーが正しくない。あるいは複数のマシンで同一サービスキーを使用した場合に発生します。複数のマシンで同じサービスキーをしようした場合には、このエラーが発生したマシンのJV-Linkをアンインストールし、再インストール後、利用キーの再発行が必要となります。")
    If ErNo = -302 Then Debug.Print ("サービスキーの有効期限切れData Lab.サービスの有効期限が切れています。サービス権の自動延長が停止していると思われます。解消するにはサービス権の再購入が必要です。現在ソフト作者様に配布しているサービスキーではこのエラーは発生しません。")
    If ErNo = -303 Then Debug.Print ("サービスキーが設定されていない(サービスキーが空値)サービスキーを設定していないと思われます。JVLinkインストール直後はサービスキーが空なので必ず設定する必要があります。JV-Linkインターフェース仕様書29")
    If ErNo = -305 Then Debug.Print ("利用規約に同意していない")
    
    If ErNo = -401 Then Debug.Print ("JV-Link内部エラーJV-Link内部でエラーが発生したと思われます。JRAVANへご連絡ください。")
    If ErNo = -402 Then Debug.Print ("ダウンロードしたファイルが異常(ファイルサイズ=0)")
    If ErNo = -403 Then Debug.Print ("ダウンロードしたファイルが異常(データ内容)")
    If ErNo = -411 Then Debug.Print (" サーバーエラー( HTTP ステータス404NotFount)レジストリが直接変更されたか、Data Lab.用サーバーに問題が発生したと思われます。JRA-VANのメンテナンス中でない場合で、このエラーが続く場合はJRA-VANへご連絡ください。")
    If ErNo = -412 Then Debug.Print ("サーバーエラー( HTTP ステータス403Forbidden)Data Lab.用サーバーに問題が発生したと思われます。このエラーが続く場合はJRA-VANへご連絡ください。")
    If ErNo = -413 Then Debug.Print (" サーバーエラー(HTTPステータス200,403,404以外)同上")
    If ErNo = -421 Then Debug.Print ("サーバーエラー(サーバーの応答が不正) 同上")
    If ErNo = -431 Then Debug.Print ("サーバーエラー(サーバーアプリケーション内部エラー)同上")
    
    If ErNo = -501 Then Debug.Print ("セットアップ処理においてCD-ROMが無効JRA-VANが提供した正しいCD-ROMをセットしていないと思われます。正しいCD-ROMをセットしてください。")
    If ErNo = -502 Then Debug.Print ("ダウンロード失敗(通信エラーやディスクエラーなど)ダウンロード処理に失敗しました。エラーの原因を除去しないかぎり解決しないと思われます。原因を除去できたらJVCloseを呼び出し、JVOpenからの処理をやりなおしてください。サーバーが混雑している場合のタイムアウトでもこの戻り値が返されることがあります。JV-Linkインターフェース仕様書30")
    If ErNo = -503 Then Debug.Print ("ファイルが見つからない")
    If ErNo = -504 Then Debug.Print ("サーバーメンテナンス中サーバーがメンテナンス中です。JVStatus戻り値意味原因と対処0以上正常(ダウンロード済みファイル数)")
    
    If ErNo = -999 Then Debug.Print ("Myエラー タイムオーバー終   Fn&jvjo&RNo=" & MyDay & JvJo & RNo)
    
    問題発生
    
    ラボEND
    
    End Sub
    
    
    
    画像

    ターゲットの設定はこちらをどうぞ

    エクセルで競馬プログラム
    ここまでで出馬表タイマーで自動予想出来ます
    ※まだ投票・メールは使えません
    お疲れ様でした😎


     
     
     
    趣味は競馬と株です。よろしくお願いします😎 良かったと思ったYouTubeを中心に紹介してます ⚠️スーパーうまン🐎📈の偽物は消えた様ですが ⚠️メッセージからの誘導など注意お願いします

    あなたへのおすすめ