VBAで、競馬の時系列オッズを取り込む

こんにちは。伊川(@naonaoke)です。

私がVBAを勉強したきっかけは、競馬です。

業務で利用するためにVBAを勉強したわけではありません。

自分の趣味に時間をかけるのは、惜しくありません。

そして、自分の趣味を効率よく楽しみたいから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で表現します。




ここがポイント

ここがポイント
Function8.png
色々な考え方があると思います。VBAを使う前に、前提となる事は、まず関数で考えるのが一番良いと思います。

WorkSheet関数で表現することが、VBAのコードを書く羅針盤となります。

 




まとめ

今回はここまでにします。

次回は、実際にVBAのコードを記載します。

今回のサンプルファイルは、ありません。

サンプルファイルの購入
ブログが動画で紹介した内容のサンプルファイルを
購入できます。月額3,000円です。
練習用ファイルもダウンロードできます。
PayPal経由でお支払いでます。
ダウンロード回数に制限はありません。
スポンサーリンク

Twitterでフォローしよう

おすすめの記事