今回は、”速報系データ[0BXX]”(5種類)のデータをワークシートに展開するサブルーチンを作ります。
コードは特に断りがない限り、”Top”シートのコードウィンドウに記述します。 |
1.”レース速報(0B12)”を展開するサブルーチン[Display0B12DataOnWorksheet]
"0B"は”ゼロ・ビー”です。(オッズの”O1”は”オー・ワン(イチ)”と読みます。紛らわしいですね。)
このサブルーチンはすでに作ったものを利用するので、呼び出すだけです。
実際に競馬開催日に使うとレースの確定後にデータが徐々に増加し、また配布されるデータの並び方も刻々変化する様子が分かると思います。表示するワークシートは"RA_RACE","SE_RACE","HR_RACE"です。
(注意:実際の使用に当たっては、先に対応する開催日の"RA_RACE","SE_RACE","HR_RACE"を実行しておいてください。対応するデータ日付が異なると正常に解析できない場合があります。) |
2.”馬体重(0B11)”を展開するサブルーチン[Display0B11DataOnWorksheet]
これは独自のサブルーチンです。
このデータもレース当日の発走時刻の1時間前に発表されるので、時間とともに徐々にデータが増加します。 |
3.”データマイニング予想(0B13)”を展開するサブルーチン[Display0B13DataOnWorksheet]
このデータは、1日分が一括で提供されますが、前日・当日・レース直前でデータが変わります。(”SE”データに含まれるのはレース直前の分です) |
4.”開催変更情報(0B14)”を展開するサブルーチン
0B14データにはいわゆる開催変更情報が含まれます。この中には5種類のデータがあるので、1つづつ作ります(後で、まとめて表示するサブルーチンも作ります)。
(1)”取消・除外(AV)”データを展開するサブルーチン[DisplayAvDataOnWorksheet]
このデータの性格上、何も取消・除外がなければ1日何もデータがない場合もあります。また最初から取消が分かっている場合もあれば、直前に除外ということもあるので、データの並び方は不ぞろいです。実際に検索する場合は全データを見る必要があります。(0B14)のデータは基本的には全部チェックする必要があります) |
(2)”騎手変更(Jc)”データを展開するサブルーチン[DiplayJcDataOnWorksheet]
このデータも1日何もデータがない日もあれば、めったやたらと出る場合もあります。このデータのややこしいのは、”騎手変更”が出た時点でまずデータが提供されますが、乗り替わる騎手が”未定”というデータもあります。決まるとまたデータが増えますが、”未定”というデータは残ったままです。最新データは一番後ろにあるので、データを取り出すときは後ろから読むといいと思います。ここで作るサブルーチンには1つだけを取り出す機能はありません。ひたすらすべてを表示するのみです。 |
(3)”発走時刻変更(Tc)”データを展開するサブルーチン[DisplayTcDataOnWorksheet]
|
(4)”コース変更(Cc)”データを展開するサブルーチン[DisplayCcDataOnWorkshee]
|
(5)”天候馬場状態(We)”データを展開するサブルーチン[DisplayCcDataOnWorksheet]
このデータの使い方はちょっとややこしいので、よくわかりません。イメージとしては、現在の天候・馬場状態が発表されるという感じです。つまり馬場状態が変わるたびに発表されるようです。いわばレース前の情報です。
私の場合は、結果の情報さえ分かればいいので、この”We”情報は使わず、”RA”の中の馬場状態の確定情報を利用しています。 |
(6)”開催情報(0B14)”データは上記の(1)〜(5)のデータが合成されています(WE以外はない場合もあり)。これらをまとめて扱うサブルーチンを作ります。[Dislplay0B14DataOnWorksheet] (Topシートに追加)
中身は先に作成したサブルーチンをそれぞれ呼び出すだけです。
|
5.”速報総合オッズ(0B30)”データを展開するサブルーチン[Display0B30DataOnWorksheet]
これも合成されたデータですが、中身はすでに作った各オッズ用のプログラムを利用します。
このデータは”レース”単位で提供されるため、1日で最大36レース分があります。速報なのでレースが確定するまで時々刻々と変化しますが、取得できるデータはその時点で取得できる分です。ワークシートに展開すると”O1”〜”O6(あれば)”のデータが1つづつ表示されます。 |
6.”時系列オッズ(0B41/B42)”データを展開するサブルーチン
時系列オッズも”レース単位”の提供ですが、0B41が”O1”(単複枠)、0B42が”O2”(馬連)と中身は同じ種類のデータが時間的に連続しているだけです。したがって発走時刻によりデータ数が変わります。表示サブルーチンはすでに作ったものを利用しますので、ここで作るものはありません。 |
7.次に前回同様にサブルーチンに追加するサブルーチンを作ります。
下記のコードを前回のサブルーチンWorksheet_BeforeDoubleClickの中のサブルーチンに追加します(”Top”)。
追加するのは2種類あります。
(1)内部サブルーチン"OpenFileData"の中に追加するコード
追加する場所は前回の Case "RC" のブロックの下と End Select の間です。
|
(2)内部サブルーチン"JVDataSetAndDisplay"の中に追加するコード
追加する場所は前回の
Case "RC"
Call DisplayRCDataOnWorksheet(FileID, RcDataSu)
とend Select の間です。
|
8.さらに下記のサブルーチンを標準モジュール(mMod3)に追加してください。
これらは前項目の7-(1)で作成したサブルーチンの中で使われます。
(1)”開催情報(レース速報)(0B12)”を読み込むサブルーチン[ReadJVRT_0B12]
|
(2)”開催変更情報(0B14)”を読み込むサブルーチン[ReadJVRT_0B14]
|
(3)”速報オッズ(0B30)”を読み込むサブルーチン[ReadJVRT_0B30_Single]
以上で、”速報系データ”用のサブルーチンは終了です。
上書き保存してください。 |
9.プログラムの実行
”Top”シートのファイル名をダブルクリックするとデータが表示されると思います。速報系データは少し"RACE/RCOV”とちょっと違った感じです。
いかがですか。これで「New JVData Explorer基礎編」のうち、最新開催週のデータ取得のプログラムは一応終了です。うまくいきましたか。
作るマクロは結構たくさんありますが、1つ1つは似たようなものですので、最初に作るものを理解すればそのコピーと若干の変更で作成することができます。
次回は基礎編の最終回として、「過去に取得したデータ」を表示するプログラムを作ります。この機能は以前作成の[JVData Explorer]にはなかった機能です。
あと一息で基礎編は完成です。 |
ページトップへ |