EXCELでDIY |
Excelで競馬分析をしよう | |||
Home > DIYしよう!> ExcelでDIY |
お知らせ | ソフトウェア | 競馬研究 | DIYしよう | 出馬表 | 開催情報 | BLOG | リンク | モバイル |
■ワークシートを分析してみよう面倒な変数の概念も終わり、今回はさらに一歩踏み込んだワークシート分析を行ってみます。ワークシートを使った競馬データの分析方法は、中級編でも扱っていましたが、マクロを使った場合に比べてどの様なメリットがあるか、改めて整理してみましょう。
競馬データ分析や自分だけの予想ソフトを組むには、マクロを利用するほうが効率的です。これは再三にわたり触れてきたので、もはや説明は不要でしょう。 では、「新潟競馬場タイム分析」で作成した分析用ワークシートを例にあげながら、説明していきたいと思います。 ■新潟競馬場タイム分析で使用したワークシートの解説新潟競馬場タイム分析では、2001年第1回新潟、第2回新潟の連対馬の成績データを分析しています。Targetを使えば指定開催のタイム分析が簡単に行えるので、分析シート上でやった事は、コースごとの連対脚質の連対占有率を求める事です。これもTargetを使って、地道にコースごとのデータを出力すれば出来る事ですが、面倒なので開催の全データをExcelで分析する事にしました。
作成した分析シートは、2つのプロシジャーから構成されています。1つは通過順位から脚質を判別するもの、もう1つはコース別に並び替えた成績データから、脚質毎の集計をするプロシジャーです。尚、脚質判別には今週の馬場速報などで利用している、自作のクラスモジュールを利用しています。クラスモジュールは説明すると長くなるので、ここでは省略しますがプロパティに数値を入れると、結果がえられるものだと解釈してください。 List1.脚質分析処理
【概要の解説】Targetの出力した2001年第1回、2回新潟の全成績をSheet1(全成績)にコピーし、見やすいように不要なデータをカットしました。List1はSheet1の3、4角通過順位を変数Pos1,2に取り込み、脚質算出用の自作クラスcKyaにプロパティとして渡します。頭数、通過順位をプロパティとして与えた後、Call cKya.GetKyakuを実行し、実際の脚質を取得します。取得した脚質はSheet1に文字と数字で出力しています。
■条件分岐処理 If〜Then〜End IfIf〜Then〜End If構文は、最もプログラミング処理的な構文です。If構文を使えば、「もし○○と言う条件を満たしたら、〜を実行しなさい」と言う処理が行えるようになります。書式:If 条件式 Then 〜 End If尚、条件の比較には以下の演算子が使えます。 表1.Visual Basicが扱える論理演算子
注)他にも演算子は存在しますが、ここでは省略します。VBAのヘルプをご覧ください
■繰り返し処理 Do While 〜 Loop 構文List1では、Sheet1のデータが途切れるまで繰り返し処理をしています。繰り返し処理などプログラムコードの流れをコントロールするものを、制御構文と言います。また、制御構文の中でも繰り返し処理を行うものをループ構文、単にループと呼び、プログラムを書く上で重要な処理です。 Do While〜Loopは代表的なループ構文であり、Do WhileとLoopの間に書かれたソースコードを条件が満たされている限り、ループ処理を実行します。条件の設定を誤るといつまでも終了しないループが出来てしまいます。こうなると、強制的にプログラムを終了させるか、リセットするしかありません。この様な永遠に終わらないループの事を「無限ループ」と言います(Windowsのエラーで、「アプリケーションから応答がありません」と表示されるもののほとんどは、なんらかの原因により無限ループに陥っています)。ループの条件設定の際には、十分注意してください。
図1.Do While〜Loopのフローチャート
変数aが1であるかぎり、ループし続けます 今回はここまで。次回は分析の続き、コース別の連対脚質の集計をおこないます。 |
|||||||||||||||||||||||||||||||||||||