目次
VBAで、競馬の時系列オッズを取り込む
こんにちは。伊川(@naonaoke)です。
私がVBAを勉強したきっかけは、競馬です。
業務で利用するためにVBAを勉強したわけではありません。
自分の趣味に時間をかけるのは、惜しくありません。
そして、自分の趣味を効率よく楽しみたいからVBAを勉強しました。
ご視聴者様のコメント
僕もトレーニングしております。
これからよろしくお願いいたします。
私もVBAを学ぼうとして挫折しました。
今回のお題
競馬のソフトで、時系列オッズビューワーというフリーソフトがあります。
都市伝説かもしれませんが、異常なオッズを見つけることで、激走馬を見つけることができます。
上の図が、時系列オッズビューワーというフリーソフトです。
午前9:30 と、レース発送の30分前のオッズを取り込みたいのです。
MATCH関数を使う
Excelに貼り付けると、上の図のようになります。
VBAを利用する前に、WorkSheet関数でできるか確認してみましょう。
VBAを利用する前の準備 作業手順 その1 関数で試してみる
しかし、このように都合よくはいかないのが、競馬であり、みなさんの実務ではないでしょうか?
VBAを利用する前の準備 作業手順 その2 9:30のオッズがない
レースによっては、上の図のようになります。
このように、JRAはどこまでも意地悪なのです。
ここで諦めてはいけません。
Match関数は、この意地悪を克服する機能があります。
ここで、みなさんは、1つの選択をしなければなりません。
9:30の直近のオッズを取り込むために、9:30前なのか、9:30後なのかです。
VBAを利用するための準備 作業手順 その3 Match関数で近似値を抽出
私は、9:30より前にしました。
Match関数は、検査値、検査範囲、照合の種類で構成されています。
この照合の種類を、近似値を1にすると、9:30より前の近似値の値を返します。
これで、JRAの意地悪を突破することができました。
VBAを利用するための準備 作業手順 その4 近似値を取得した後の考え方
つまり、Match関数で、列番号を取得して、取得番号から、2つずれた場所から、最後までをコピーする。
この考え方をVBAで表現します。
ここがポイント
色々な考え方があると思います。VBAを使う前に、前提となる事は、まず関数で考えるのが一番良いと思います。
WorkSheet関数で表現することが、VBAのコードを書く羅針盤となります。
まとめ
今回はここまでにします。
次回は、実際にVBAのコードを記載します。
今回のサンプルファイルは、ありません。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。