投稿

ラベル(VBA)が付いた投稿を表示しています

競馬成績表データベースを作る(ツール-Excel編)

イメージ
1.概要 競馬成績表データベースを作るの第四弾です。これまで、作成したデータベースを活用するためには、検索表示などができないと 何の役にも立ちません。今回は、Excel VBAで作成します。当ブログ記事の 「Excelでデータベース(SQLite3)を扱う」 で紹介しているテンプレートとなるソースコードを元にして、検索部分とデータ出力機能を追加しデータが抽出できるようにしたものです。 データベースをしっかり作成していれば、競馬以外の他の用途でも、いろいろと応用の効くものとすることができます。 2.ソースコード まずは、簡単に操作方法を説明します。 Yahoo競馬レース成績表検索.xlsm を起動します。 検索条件のコンボボックスで「競馬場」、「距離」、「コース」の3つの条件を選択して、実行ボタンをクリックします。 抽出対象データがあれば、100件/1ページ単位にデータが表示されます。ページ制御をしていますので、「次ページ」、 「前ページ」、「先頭」、「最終」のボタンをクリックしてページを表示させます。 また、「出力」ボタンをクリックすると、CSV形式で抽出したデータを外部出力できます。「消去」ボタンは、 画面上のデータを強制的に消去するものです。新たな条件で「実行」ボタンをクリックすれば、前処理として 消去(画面クリア)させていますので、通常は操作不要です。尚、 Yahoo競馬レース成績表検索.xlsm の実行には、 SQLite の ODBC とこのプログラムで利用する データベース(pegasus.db) が 必要 ですので事前に準備しておいて下さい。 ThisWorkbook は、ブックを開いた時の初期設定処理をしています。検索条件設定用のコンボボックスに値をセットします。 '***** ブックを開いた時の初期設定処理 ***** Private Sub Workbook_Open() Sheets("成績表").Select Worksheets("成績表").Activate '***** 検索条件用のコンボボックスを設定 ***** ' 競馬場 Dim CBRaceKaisai(10) CBRac

競馬成績表データベースを作る(データベース編)

イメージ
1.概要 「競馬成績表データベースを作る」の第三弾として、競馬成績表データの取得が完了していることを前提として、 記事を進めていきます。今回は、取得済みデータ(CSVファイル)からデータベースを作っていきます。 データベースは、SQLite3を利用しますので、当ブログ記事の 「Excelでデータベース(SQLite3)を扱う」 を一読願います。 データベースを作成するための必要なツールなどを紹介しています。これからの作業で必要となりますので、準備しておいて下さい。 2.作成手順 第二弾で説明したデータ取得編での作業が終了しているものとします。 (1)取得データの格納先パスを指定しなかったので、取得データは、カレントディレクトリにあると      思います。 (2)作業のために新規フォルダとして、「成績」と「日程」という2つのフォルダを作成します。 (3)RXXXXXXXXXXXXXX.txtは日程フォルダへ移動、SXXXXXXXXXXXXXX.csvは成績フォルダへ移動      させて下さい。 (4)DBへの入力元となるインポート用成績表ファイルをマージします。マージ処理は、当ブログの       「複数のファイルをマージする」 で公開の テキストファイルマージツール(tfmarge.exe) を使用      します。マージ対象先である成績フォルダを選択し、拡張子はcsvで出力ファイル名を成績      マージ.csvとしてマージボタンをクリックします。      成績フォルダ内に成績マージ.csvが作成されますので、カレントディレクトリに移動させます。 (5)成績マージ.csvファイルをメモ帳等のテキストエディタで開いて、先頭行にヘッダ名を挿入し      ます。予め別メモで書いているものをコピーして貼り付けると良いでしょう。 (6)import.batをダブルクリックして、成績マージ.csvファイルからデータベースを作成します。       ※【注意】import.batと同一フォルダにsqlite3.exeが必要です。      ・作成するDBファイル名 : pegasus.db      ・インポートCSVファイル名 : 成績マージ.csv (エンコード : UTF-8)      ・テー

競馬成績表データベースを作る(データ取得編)

イメージ
1.概要 競馬成績表データベースを作るの第二弾は、競馬成績表データの一括自動取得を行います。 事前準備編 で取得済みの 各レース毎のレース成績表リンクリストを使います。そのリストのリンクを順次読み込み、サイトを自動巡回して 成績表データを取得します。取得できるデータ項目は、日付、コード、R番号、競馬場、開催、発走時間、天気、馬場、レース名、コース、距離、単勝、枠連、馬連、馬単、3連単、1着、2着、3着、頭数の 計20項目となります。プログラムは、Excel VBAで作成します。 2.データの取得手順 成績表データ取得手順は、次の手順で行います。 (1) Yahoo競馬レース結果取得.xlsm を起動します。(ダウンロードは、本連載記事の最終回で提供) (2)成績表データ取得ボタンをクリックします。 (3)ファイル選択ダイアログが開くので、事前取得済みのレース成績表リンクリストを選択します。 (4)データ取得が開始されますので完了するまで待ちます。 (5)レース成績表リンクリストは分割して準備されていると思うので、続いて取得の場合は、      手順(2)から繰り返し実行します。 データベース作成時は、分割取得されたデータを全てマージして利用します。 コード体系は、以下のような体系で構成されています。データ取得時は、このコード番号が キーとしてURLのパラメータとなります。 (例)2002020806 https://keiba.yahoo.co.jp/race/result/2005020806/ 20 ⇒ 西暦年 YY 05 ⇒ 競馬場コード (東京) 02 ⇒ 開催回 (02回) 08 ⇒ 開催日目(08日目) 06 ⇒ レース番号 (06R) ●パラメータ yy : 開催年 xx : 競馬場コード yy : 開催回[第N回] zz : 開催日目[N日目] rr : レース番号 ●競馬場コード 01 : 札幌競馬場 02 : 函館競馬場 03 : 福島競馬場 04 : 新潟競馬場 05 : 東京競馬場 06 : 中山競馬場 07 : 中京競馬場 08 : 京都競馬場

競馬成績表データベースを作る(事前準備編)

イメージ
1.概要 競馬成績表のデータベースを作成し、過去の成績データから、いろいろ分析するのに役立てようと思います。 筆者は、実際に競馬はやっていません。競馬を題材としてデータ量が豊富なので統計的な分析手法の勉強用に データの収集を行って楽しんでいます。 今回の記事から何回かに分けての投稿を予定しています。データ収集からデータベースを作って活用するためのツール 作りまでを連載形式で紹介していきます。 2.事前準備作業 今後の予定については、以下の通りです。 ・ 事前準備編 (今回) ・データ取得編 ・データベース編 ・ツール-Excel編 ・ツール-HSP編 とします。一度に全ての記事を整理仕切れないので、分割としました。気長に付き合って下さい。 事前準備編では、競馬レースの成績表を過去分のデータまで遡って取得するために事前に指定年月の 開催日程日と各レースの結果が掲載されているページのURLを取得する必要があります。 取得プログラムは、Excel VBAマクロで作成しています。 3.利用方法 レース結果のリンクページのURLリストを取得するプログラムは、 Yahoo競馬結果リンク先取得.xlsm です。 指定範囲の年月で一括でリンクリストを取得し、外部出力します。 プログラムとしては、指定した年月より開催日程表リンク先を取得して配列(listファイル配列)に格納します。 listファイル配列のURLをもとに自動巡回しながら、開催日のレース毎の成績表リンク先を取得するというものです。 取得したリンク先をシート上に表示していきます。ファイル名を日付時刻形式として、カレントディレクトリにテキスト形式で外部出力します。 取得先は、下記サイトのページより取得しています。 Yahoo!競馬開催日程表 https://keiba.yahoo.co.jp/schedule/list / Yahoo!競馬成績表結果 https://keiba.yahoo.co.jp/race/result/ 利用方法は、ダウンロードしたら (1) Yahoo競馬結果リンク先取得.xlsm を起動します。 (2)プルダウンで開始年と開始月、終了年と終了月で取得期間(範囲)を指定します。       ※指定範囲は、最大6ヶ月程度として、

最新の雨雲レーダから画像データを取得する

イメージ
1.概要 国土交通省が情報提供しているリアルタイムレーダー観測雨量の地域ブロック別に分割されている観測画像を一括して取得し、一覧画面として 表示します。地域ブロックは、全国、沖縄地方、九州地方、四国地方、中国地方、近畿地方、中部地方、北陸地方、関東地方、東北地方、北海道地方 で全国を含めて計11の地方ブロックとなっています。データは国土交通省の雨雲レーダーの最新更新時の画像データを取得・表示します。 2.レーダー観測雨量の取得 ※【注意】河川の防災情報がリニューアルされたため、情報の取得ができませんので、提供を中止します。 利用は不可です。 レーダー観測雨量の取得は、Excel VBAにて作成したマクロで取得・表示します。観測データは、画像ファイルとなっていて イメージ情報として、地域エリアコードと時と分を組み合わせたものがURLのパラメータとして渡されます。 取得画像形式は、gif形式となっています。 Excel VBAマクロで作成した、 国土交通省_レーダ観測雨量取得.xlsm を起動すると、自動で取得して一覧表示させています。 再度、時間をおいて実行する場合は、レーダー観測雨量ボタンをクリックします。.また、手動で画面のクリア(消去)する場合は、 消去ボタンをクリックします。取得時には、取得前に消去させていますので、手動消去は必要ありません。 3.ソースコード 下記のリストは、 国土交通省_レーダ観測雨量取得.xlsm のソースコードです。 ALT+F11でVBE(エディタ)を開いて、ソースコードを確認して下さい。 ThisWorkbookは、起動時の処理のため、Workbook_Open()で Worksheets("MAIN")のGetUryouを呼び出して 自動的にレーダー雨量観測画像データを取得しています。 次に標準モジュール : APIModは、Sheet1(MAIN)で利用するWindows APIを3つ定義しています。 Sleep 関数は、待ち時間を指定するものです。 ShowWindow 関数は、ウィンドウを最大化するか最小化するかの動作をさせるためのものです。 URLDownloadToFile 関数は指定URLのファイルを、指定パスにダウンロードするためのものです。 Shee

Web上の複数ページを自動巡回してPDFへ出力

イメージ
1.概要 Web上のページを仮想プリンタへ出力する場合は、ブラウザの印刷出力でPDF出力できます。また、ブラウザの拡張機能でプラグインを インストールしてアイコンをクリックするだけでPDF出力することもできますが、複数ページを連続してまとめて自動出力できれば 便利だと思います。筆者の場合は、個人の学習目的としてExcelやPython等のプログラミング講座やサンプルを掲載 しているサイト様から情報収集しています。少しでも個人レベルで 時間や労力の削減を目的として効率化 を図っています。 今回は、Excel VBAで自作した Web上の複数ページを自動巡回してPDFへ出力する方法 について紹介します。 2.作業手順 まずは、情報収集のための準備作業です。検索エンジンでググったりして自分が必要とすべき情報があるサイトを見付けに行きます。 これは普段から誰でもやっていることですね。この作業がネットにおいては何よりも重要な作業だと思います。 目的とするページが見つかったら、サイトのURLをメモ帳などにメモっておきます。 以降は、Excelのマクロを実行しての作業となります。少しだけ面倒なのですが、2種類のVBAマクロを利用します。 (1)指定URLのリンク取得.xlsmを起動して該当先(Webページ)のリンク一覧を取得します。     リンクの取得が完了したら、指定URLのリンク取得.xlsmを閉じます。 指定URLのリンク取得.xlsmの起動画面 (2)リンク取得が完了したら、日付時刻形式のブックファイルとして出力されるので開いて確認します。 PDF出力しない不要な行の削除とタイトル項目名(PDF出力する時のファイル名) を必要であれば変更します。 リンク取得後の出力済みファイルの不要行の削除とファイル名の調整 (3)項目名の先頭に番号(連番)が付加されているがなければ連番を付加しておくと良いです。 事前に手間でも、この作業をしておくとファイル出力後、番号順にファイルが並ぶので管理し易いです。ファイルは閉じずに上書き保存してこの状態にしておきます。 項目名の先頭に番号(連番)を付与 以上が準備作業です。ここからの作業は、上記で取得編集したリンクファイルを利用しての WebページのPDF出力です。 (4)Webページを仮想プリ

TOP