自作データベース「結果Dのヘッダーと明細の見出し」

結果データの見出しを縦に表示するVBAを作成する
Excelシートをデータ投入に利用すると、1行目に見出し2行目以降にデータとなるためブログ表示する上で、横幅の制限があるので、見出しを縦に展開した方が見やすくなるのでExcelVBAモジュールを作成し便宜上、1行目の見出し項目を縦展開した文字列を表記する。
Sub Midashi_KekkaSET()
Dim RET As Variant
RET = DTL_MIDASITate("表H", "結果H見出し一覧縦")
RET = DTL_MIDASITate("表D", "結果D見出し一覧縦")
End Sub
Function DTL_MIDASITate(sh1, sh2)
Dim j As Integer
Dim wk_nm1 As String
Sheets(sh2).Select ここをコメントにするとシートの移動をしない
Sheets(sh2).Cells(1, 1) = "No."
Sheets(sh2).Cells(1, 2) = "項目"
j = 1
Do Until CHRCVT(Sheets(sh1).Cells(1, j)) = ""
'A列に順
Sheets(sh2).Cells(j + 1, 1) = j
'見出しをB列に表示させる
Sheets(sh2).Cells(j + 1, 2) = Trim(Sheets(sh1).Cells(1, j))
j = j + 1
Loop
End Function
Function CHRCVT(r) As String
If IsNull(r) Then
CHRCVT = ""
Else
CHRCVT = Trim(r)
End If
End Function
Sub A1RC1Display()
If Application.ReferenceStyle = xlA1 Then
Application.ReferenceStyle = xlR1C1
Else
Application.ReferenceStyle = xlA1
End If
End Sub
今までこのブログで使った自作関数を利用して作成している。
実際に使用している原表のシート名
- 表H:結果データのヘッダー(払戻しやレース情報など)
- 表D:結果データの明細(着順やコーナー順、単複オッズなど)
表H
| No. | 項目 |
| 1 | 開催日 |
| 2 | 曜日 |
| 3 | 場名 |
| 4 | 回 |
| 5 | 日目 |
| 6 | R |
| 7 | 競走名 |
| 8 | 競走条件 |
| 9 | 齢条件 |
| 10 | 牝 |
| 11 | ハンデ |
| 12 | 距離 |
| 13 | ダ芝 |
| 14 | 外回 |
| 15 | 天候 |
| 16 | 馬場 |
| 17 | 出走頭数 |
| 18 | クラス |
| 19 | WIN5 |
| 20 | ハロンタイム |
| 21 | 上り |
| 22 | 1コーナー |
| 23 | 2コーナー |
| 24 | 3コーナー |
| 25 | 4コーナー |
| 26 | 1着同着数 |
| 27 | 2着同着数 |
| 28 | 3着同着数 |
| 29 | 1単人気 |
| 30 | 2単人気 |
| 31 | 3単人気 |
| 32 | 1単_馬番 |
| 33 | 2単_馬番 |
| 34 | 3単_馬番 |
| 35 | 1単払 |
| 36 | 2単払 |
| 37 | 3単払 |
| 38 | 1複馬番 |
| 39 | 2複馬番 |
| 40 | 3複馬番 |
| 41 | 4複馬番 |
| 42 | 5複馬番 |
| 43 | 1複払 |
| 44 | 2複払 |
| 45 | 3複払 |
| 46 | 4複払 |
| 47 | 5複払 |
| 48 | 1馬単着 |
| 49 | 2馬単着 |
| 50 | 3馬単着 |
| 51 | 4馬単着 |
| 52 | 5馬単着 |
| 53 | 6馬単着 |
| 54 | 1馬単払 |
| 55 | 2馬単払 |
| 56 | 3馬単払 |
| 57 | 4馬単払 |
| 58 | 5馬単払 |
| 59 | 6馬単払 |
| 60 | 1三連単着 |
| 61 | 2三連単着 |
| 62 | 3三連単着 |
| 63 | 4三連単着 |
| 64 | 5三連単着 |
| 65 | 6三連単着 |
| 66 | 1三連単払 |
| 67 | 2三連単払 |
| 68 | 3三連単払 |
| 69 | 4三連単払 |
| 70 | 5三連単払 |
| 71 | 6三連単払 |
| 72 | 1三連複着 |
| 73 | 2三連複着 |
| 74 | 3三連複着 |
| 75 | 1三連複払 |
| 76 | 2三連複払 |
| 77 | 3三連複払 |
| 78 | 1馬連着 |
| 79 | 2馬連着 |
| 80 | 3馬連着 |
| 81 | 1馬連払 |
| 82 | 2馬連払 |
| 83 | 3馬連払 |
| 84 | 1枠着 |
| 85 | 2枠着 |
| 86 | 3枠着 |
| 87 | 1枠払 |
| 88 | 2枠払 |
| 89 | 3枠払 |
| 90 | 1ワイド着 |
| 91 | 2ワイド着 |
| 92 | 3ワイド着 |
| 93 | 4ワイド着 |
| 94 | 5ワイド着 |
| 95 | 6ワイド着 |
| 96 | 7ワイド着 |
| 97 | 8ワイド着 |
| 98 | 9ワイド着 |
| 99 | 10ワイド着 |
| 100 | 1ワイド払 |
| 101 | 2ワイド払 |
| 102 | 3ワイド払 |
| 103 | 4ワイド払 |
| 104 | 5ワイド払 |
| 105 | 6ワイド払 |
| 106 | 7ワイド払 |
| 107 | 8ワイド払 |
| 108 | 9ワイド払 |
| 109 | 10ワイド払 |
| 110 | 発売票数単勝 |
| 111 | 発売票数複勝 |
| 112 | 総票数合計 |
※2019.12月作成時から大きな変更はない。
表D
| No. | 項目 |
| 1 | 開催日 |
| 2 | 場名 |
| 3 | R |
| 4 | K馬番 |
| 5 | 着順 |
| 6 | 枠番 |
| 7 | 馬名MK |
| 8 | 馬名 |
| 9 | 性齢 |
| 10 | 負担重量 |
| 11 | 減量 |
| 12 | 騎手 |
| 13 | タイム |
| 14 | 着差 |
| 15 | コーナー通過順位 |
| 16 | 1C |
| 17 | 2C |
| 18 | 3C |
| 19 | 4C |
| 20 | 推定上り |
| 21 | 馬体重 |
| 22 | 前走増減 |
| 23 | 調教師 |
| 24 | 単勝人気 |
| 25 | 単勝倍率 |
| 26 | 複勝min |
| 27 | 複勝max |
| 28 | 朝連順 |
| 29 | 朝単順 |
| 30 | 朝複順 |
| 31 | 朝単odds |
| 32 | 朝複min |
| 33 | 朝複max |
| 34 | ブリンカー |
※2019.12月作成時から以後に「ブリンカー」欄を追加したので、最終行にブリンカー項目がある。
コーナー通過順位(1C-2C-3C-4C)は後から追加になった項目
※2019.11月まではコーナー順はレース全体だけで馬別の表示はなかった。
JRAホームページの改編は毎年12月初旬に行われるので、
UWSCやPythonなどでデータスクレイピング(コピペ)していると改編により
ほぼ全てのプログラムの修正をしなくてはならない場合もあり得る。
「自分の予想スタイル」と「カネと時間の余裕」とのバランスになってくるが、競馬を自分の生活のネタにするなら「JRA-VANデータラボ(有料)」は最終的なツールとして一考しておいた方が良い。
私の場合、データ加工がブログネタになっているのもあり「JRA-VANデータラボ(有料)」は未導入だが馬券結果が今後上向きになるようなら導入も一考する。その時はまたココでの発表となるだろう。
コーナー通過順:「競走中止」のデータ処理
※4月に一度パッチを当てているのでかなり苦労したことが分かる。(既にSQL-Serverに投入しているデータはAccessで一括更新) 競走中止の場合、ホームページ上は着順に「中止」と表示される。数字ではないというのがポイントだ。当時私が作っていたデータベースだとこのデータはエラーとして扱われ読み飛ばされていたということが分かった。データベースの仕様から変更するので今から思えば「コーナー通過順」だけ処理を別にしたらよかったと思っている。
コーナー通過順: 2018.12月追加時の苦労
何が苦労したのかというと、2018.11月末までは競走結果の馬毎の明細は1行だったのが、コーナー通過順が追加されたことでExcelにコピペすると複数行になりデータ取得するプログラムが多少複雑になるということ。またコーナーが施行距離により可変であることがプログラムを複雑にさせる要因になる。私はこれを1C-2C-3C-4Cと別枠でデータを格納することで対応した。
- 4Cからデータを格納する。
- ’-’を繋ぎにすることで、Excelコピペ時にデフォルトだと日付変換される。
※現在は過去のデータも全てコーナー順が表示されている。
コーナー通過順: Excel貼付け後のサンプル
2020年 京都記念

2020年 フェブラリーS

距離によって行が可変になることが分かる。
- 京都記念 1C-2C-3C-4C
- フェブラリーS 3C-4C
データが1行だと4Cだけ2行だと3C-4C・・・となる。
これは格納も含め大幅な追加仕様となり厄介な作業となった。実際に4月にデータパッチを当てるまで2018.10月からのデータを新たにコピペし直すという基礎データの作り直しから始めている。本来の予定では過去データを遡り少なくとも2018年は1月からデータ作成する予定だったが、作業工数が膨大になる割に使用頻度が少ないことも踏まえそのまま2018.10月からのデータで良しとする判断とした。
JRAホームページを手動で操作し、過去のレース結果(例:2019.12.28 ホープフルステークス)を閲覧しDB項目の確認をする
JRAホームページ>レース結果>過去レース結果検索>開催年選択「2019」>開催月選択「12」検索>中山 ホープフルステークスGⅠ
Excel VBA 逆引き大全 600の極意 Microsoft 365/Office 2021/2019/2016/2013対応
Excel VBA 逆引き大全 600の極意 Microsoft 365
※私が持っているのが2016年版(以下は2016)
- ExcelVBAの基本構文
- セルの操作
- 関数
- ワークシート、ウィンドウの操作
- ブック操作
- データ操作
- テーブル・ピボットテーブル
- 図形
- グラフ
- ユーザーフォーム
- 印刷
- ファイルとフォルダ
- データ連携
- イベント
- バージョン・トラブルシューティング・エラー処理
- 高度なテクニック
- 索引
目次が巻頭で検索が巻末。昔のタイプの本の構成だが、索引がページでなくTipsという見出しNo.になっていて慣れるまでは検索しづらい。
Amazonレビューは★3.9

編集後記
JRA-VANデータラボ(有料)の検討について
- 既に確固たるデータ予想で年間収支を+にしている攻略法をお持ちの方
- 競馬をネタに情報を発信している方でデータ分析に興味がある方
- 競馬コンテンツをお持ちの方でご自身でもプログラム開発を検討されている方
このような方で年間2.5マンは大したことない金額だよ~という方は自作DB作成より前に(ご存じの通り)
データラボ導入を検討し目的のデータを抽出する方が最短で目的を達成できる。
純粋に馬券的中に傾注するなら、JRA-VANデータラボ(有料)から始めるのがベターな選択といえる。
こんな方は自作データベースを作った方が良いかも知れない!?
- プログラムを組むのが馬券研究より多少好きな方
- ある程度時間に余裕がある方
- たくさんの失敗にめげない方
- 経験をネタに変換できる方
- オリジナリティを価値と評価する方
- JRA-VANデータラボ(有料)のカネが惜しい方
UWSC,Pyton,Power Automate, といった言語に「ピク!」と反応したならば、一度ググってみたら楽しい世界が垣間見えるかもしれない~同志よ~
Windowsを自動化!UWSC逆引き本 Kindle版
- はじめに
- UWSCについて
- UWSCスクリプトをつくる
- 文字を操作する
- 配列を操作する
- ファイルを操作する
- ウィンドウを操作する
- システムを制御する
- ブラウザを操作する
- Officeスイートを操作する
- 高度な操作
※Kindle販売なので在庫がなくなることはない?
UWSCの読み物として暇なときに見るようにしている
Amazonレビューは★3.9
それでは、またね~😎


