JRA-VANデータラボの競馬データJVDataをSQLiteデータベースに変換するExcel VBAプロジェクト
JVData To SQLiteはJRA-VAN データラボに登録予定のソフトウェアです。データラボの会員(月会費2,058円)は無料で使うことができます。データラボは1ヶ月の無料トライアルがあるので、データベースを更新しなくていいなら無料で使うことができます。
JVData To SQLiteは競馬データJVDataをSQLiteデータベースに変換するExcel VBAプロジェクト(Excelマクロ有効ブック)です。JVData To SQLiteを使えば、1986年から現在までに開催された競馬レースのSQLiteデータベースをローカルマシン上に持つことができ、SQLやRを使って自在に競馬データを解析することができます。
JRA-VANやデータラボについての詳しい説明は上記リンクをご覧ください。
JVData To SQLiteの目的は、ボタンを押すだけで、競馬データJVDataをダウンロードして、読み込み、SQLiteデータベースを構築することです。
JVData To SQLiteの実体はExcelマクロ有効ブックです。圧縮ファイルをダウンロードして展開してください。
JVData To SQLiteは次の3つのソフトウェアに依存しているので、それぞれWindows 7/8/10にインストールしてください。
- Microsoft Excel
- JRA-VAN JVLink
- SQLite ODBC Driver
JVData To SQLiteはExcel 2010で開発しました。2010以降のバージョンのExcelで動作すると思います。
Excelは32bit版を使ってください。JVLinkは64bit版では動作しません。Excelのインストール時に、ユーザーが自ら64bit版を選ぼうとしなければ、32bit版がインストールされるので、ほとんどの方は32bit版のExcelを使っていると思います。
Excelはマクロ機能を有効にしてください。Excelのファイル > オプション > セキュリティセンターから次のようにチェックを入れてください。
JRA-VANデータラボの動作環境タブの説明に従ってインストールし、認証キーの入力を行ってください。JVLinkの実体はActiveXコントロール(dllファイル)で、Windowsでのみ動作します。
SQLite ODBC DriverはSQLiteデータベースを操作する機能を提供するドライバです。VBAから(正確にはADODBオブジェクト)SQLiteデータベースを操作するのに必要なソフトウェアです。
http://www.ch-werner.de/sqliteodbc/からダウンロードしてインストールしてください。
リンク先のCurrent versionの下にあるsqliteodbc.exe
(32bit版)を選んでください。sqliteodbc_w64.exe
(64bit版)もあるので間違えないようにしてください。
JVData To SQLiteの実体はJVDataToSQLite.xlsm
ファイル(Excelマクロ有効ブック)です。ダウンロードした圧縮ファイルを展開するとファイルがあります。
JVDataToSQLite.xlsm
ファイルをExcelで開くと、Topワークシートが開きます。
基本的にユーザーが行うのはTopワークシートのStartボタンを押すだけです。Startボタンを押せばプログラムが始まります。
途中で止めたい場合は、Stopボタン(Startボタンを押すとStopボタンに変わります)を押します。
再度スタートすると未取得のデータから取得を再開します。
レコードの取りこぼしを調べるチェックボックスにチェックを入れてスタートすると取得済みのデータも読み込みます。取得していないレコード(正確にはjvdファイル)があれば取得しデータベースに追加します。
何か不具合があり、Startボタンが押せなくなった場合はResetボタンを押してください。Startボタンが元に戻ります。
プログラムが始まると、データベースファイルsetup.sqlite3
ファイルをJVDataToSQLite.xlsm
と同じフォルダに新規作成します。
データベースのテーブル設計は、SchemaワークシートかWikiにあります。
または、DB Browser for SQLiteなどのビューワーでsetup.sqlite3
を開けば、テーブル設計がわかります。
初回実行に24時間から48時間かかります。初回実行では、過去30年分のデータの取得とデータベース追加をするからです。
取得対象期間が短いほどJVLinkは1レコードを高速に読み込むので、一度ストップしてから再スタートするとデータの取得時間が短くなります。これはJVLinkのバグとまではいえないまでもちょっとした不具合です。
JVLinkがフリーズすることがあります。その場合はExcelの自動回復機能が働きます。Excel回復ブック(xlsbファイル)が起動している場合はそのファイルを閉じて、JVDataToSQLite.xlsm
を開いて再スタートしてください。未取得のデータから取得を再開します。
- 結果が確定したレースのデータを取得します。レースの対象期間は1986年から直近までです。対象期間を短くすることができます。Parametersワークシートの取得対象データ表の期間始めの値を任意の値に変更してください。
- 新しいレースが開催されたら、結果が確定した後(普通は月曜日)にソフトウェアを再実行するとデータベースを更新します。
- エラーが起きてデータベース構築・更新が失敗したら、再実行したときに失敗したデータから取得を再開します。
- 特別登録馬、開催予定など未来のレースのデータは取得しません。バージョンアップで対応予定です。
- 時系列オッズなど現在進行中のレースのデータは取得しません。バージョンアップで対応予定です。
- 競走馬、騎手、調教師、馬主のマスターデータは取得しません。バージョンアップで対応予定です。
Ver.1.0.0リリース
オンライン http://www.kosukemaeda.com/feedback/ またはメール welcome@kosukemaeda.com で私(まえだこうすけ)に連絡してください。GitHub Issuesも受け付けています。
バグ情報、機能改善要望、質問、その他コメントなどユーザーの意見は大歓迎です。私はこのソフトウェアのユーザーでもあります。ソフトウェアを積極的にアップデートしてより良いものにしていきたいと考えています。