JRA公式競馬データ配信サービス JRA-VAN Data Lab.

JRA-VAN DataLab.

競馬ソフト開発コーナー

プログラミング質問広場

本掲示板は、プログラミングに関する情報を作者様同士で共有・議論していただく場として用意いたしました。
JV-Link、JV-Dataに直接関連しない(一般論としてのプログラミング方法やAPI・メソッドの利用法などの)スレッドはこちらに立ててください。

一括表示 リストに戻る
タイトルオッズデータ
記事No51
投稿日: 2008/03/03(Mon) 10:22
投稿者無印悪品
簡単な質問すみません。

excellでソフト開発をしているのですが、単勝や複勝オッズ1位〜18位までのオ
ッズを表示する場合にはどのように書けばいいのですか?

例えば『複勝』のあたり馬券のオッズ、払戻金、人気などはエクセルに落とせ
ます。が、これが2番人気オッズも見てみたいときにはどうのように記述すれば
よいのでしょうか?(つまり、結果から見て1位の情報は落とせるが、確定後の
出走馬全部のオッズデータ表示できない)

タイトルRe: オッズデータ
記事No53
投稿日: 2008/03/05(Wed) 20:21
投稿者通りすがり
個別のオッズであれば、データスペック「RACE」で取れるオーイチ辺りを見れば
よいのでは?

タイトルRe^2: オッズデータ
記事No54
投稿日: 2008/03/06(Thu) 07:20
投稿者無印悪品
> 個別のオッズであれば、データスペック「RACE」で取れるオーイチ辺りを
見れば
> よいのでは?

回答ありがとうございます。
O1辺りを見るというのはなんとなくわかるのですが、その先でシートに書き込
むところがよくわかりません。
具体的に言えば 
シート(行、列) = mO1data.????
のような形でいいのですか?コレで書き込めたとしても1つのデータしか書き込
めないのですが、2位以降のデータはどのようにしてもってこれるのですか?も
しかして配列なのですか?

よろしくおねがいします。

タイトルRe^3: オッズデータ
記事No55
投稿日: 2008/03/06(Thu) 11:44
投稿者通りすがり
推察の通り、配列ですね。標準モジュールのJVLink_Structを見るとそれが確か
められると思います。

「mO1Data」ってことはExcel 2000のサンプル使ってますか?
このサンプルのUserForm1のCommandButton1_Click()の関数を以下のように修正
すれば流れはわかるかと思います。

■(念のため)From日付変更
retval = JVLink1.JVOpen("RACE", "20040801000000", 1, readcount, dlcount, lastfiletimestamp)

retval = JVLink1.JVOpen("RACE", "20080301000000", 1, readcount, dlcount, lastfiletimestamp)

■構造体変更
Dim mRaData As JV_RA_RACE

Dim mO1Data As JV_O1_ODDS_TANFUKUWAKU

■表示部分の変更
If Left(buff, 2) = "RA" Then

Else
JVLink1.JVSkip
End If
の複数行を以下に差し替え
--------
If Left(buff, 2) = "O1" Then
'JVData構造体にRAのレコードをセットする
Call SetData_O1(buff, mO1Data)

Dim umaIdx As Integer
For umaIdx = 0 To mO1Data.TorokuTosu - 1

'Sheet1の表示箇所に表示
Sheet1.Cells(5 + i, 2) = mO1Data.id.Year
Sheet1.Cells(5 + i, 3) = mO1Data.id.MonthDay
Sheet1.Cells(5 + i, 4) = mO1Data.id.JyoCD
Sheet1.Cells(5 + i, 5) = mO1Data.id.Kaiji
Sheet1.Cells(5 + i, 6) = mO1Data.id.Nichiji
Sheet1.Cells(5 + i, 7) = mO1Data.id.RaceNum
Sheet1.Cells(5 + i, 8) = mO1Data.OddsTansyoInfo(umaIdx).Umaban
Sheet1.Cells(5 + i, 9) = mO1Data.OddsTansyoInfo(umaIdx).Ninki
Sheet1.Cells(5 + i, 10) = mO1Data.OddsTansyoInfo(umaIdx).Odds
Sheet1.Cells(5 + i, 12) = mO1Data.head.MakeDate.Year + mO1Data.head.MakeDate.Month + mO1Data.head.MakeDate.Day

i = i + 1
Next umaIdx
Else
JVLink1.JVSkip
End If
--------

これでデータを取り込むと、シートのレース名の位置に、馬番、人気順、オッズの3つが表示されると思います。
着順に並べ替えるのはSE辺りを見ないといけないのでExcelだと大変そうですね。

ウィンドウを閉じる