見出し画像

🕊️②エクセルでデータラボのフォームとモジュールの追加・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


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

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


いいなと思ったら応援しよう!

スーパーうまン🐎📈 応援あれば、とっても嬉しいです😁