今回はご依頼をいただき、競走馬の過去の成績を自動で抽出するツールを制作しました。
データの抽出/貼り付け作業にかかる時間を短縮させることができます。
このツール制作で学んだプログラミング知識がこちら!
- エクセルVBAでのWebスクレイピング方法
ご要望
とあるサイトの競走馬情報を、ボタン操作でエクセルシートへコピペをしてくれるVBAを組んでいただきたいです。なお、ペースト先のエクセルシートには、取得したデータを個人的に分析するためのエクセル関数を既に組み込んでおります。
承知しました!既にエクセルシート上で計算式を組み込んでおられるということで、PythonではなくエクセルVBAでのWebスクレイピングが望ましいですね。
仕様検討
依頼者様からご要望を伺い、ツールに関する仕様は以下のようになりました。
- 競走馬の情報サイトは履歴ごとに複数あるため、URLを指定できるようにする。
- 情報サイトから取得したデータは、エクセルの決まったセル範囲に貼り付ける。
- データ取得ボタンを設け、データ取得プログラム(VBAで構築したマクロ)を実行する。
- データ取得開始時に、前回のデータ貼り付け結果とURL欄はクリアする。
- データ取得中、Chromeブラウザの表示は必要ない。
- これまで手動でサイトから大量のデータをコピー&ペーストしていた作業が、ボタンクリック一つでできるようになります。
制作したツール
ファイル構成
ファイル構成は以下の通りです。
LN | ファイル名 | 説明 |
1 | xxx.xlsm | ツール本体です。 依頼主様にてもともと用意されていたエクセル関数付きシートに、 データ取得用コードを追加したものになります。 |
起動画面
ツールを起動すると、このようなメイン画面が開きます。
非常にシンプルで、以下の構成となっています。
- データ取得元のサイトURLの入力欄
- データ取得実行ボタン
- 取得したデータの貼り付けエリア
- データ解析エリア
データ取得の実行
データ取得元となるサイトのURLを入力してデータ取得ボタンを押すと、必要な競走馬情報を取得し、データ貼り付けエリアに貼り付けます。
データが貼り付けられると、予め組み込まれている計算式にもとづき、左側のデータ解析エリアに解析結果が出力されます。
まとめ
エクセルVBAでのWebスクレイピングにより、競走馬情報をエクセルに取得するツールを制作しました。
データ解析では、インプットするデータの下準備(取得、整理)が必要となり、この作業にかかる時間が無視できません。今回はその部分を自動化によって短縮したことで、すこしでも解析検討のほうに注力いただけるようになりました!
ご参考までに、今回ご依頼者様からのお問い合わせをいただいてから、納品するまでのタイムフローを実績でまとめてみます!
- 3/31お問合せ!
30通のほどのメッセージのやりとりで、ご要望の確認をさせていただきました。
- 4/1素案制作
ご要望をもとに素案を制作しました。
- 4/2打合せ
実際にお会いして素案をご確認いただき、仕様を具体化しました。打ち合わせ後、具体化した内容を取り込み、ツールを作りこみ。
- 4/3納品&お振込み
完成させたツールを納品し、納品物をご確認いただきました。その後、お振込みいただき、無事お取引き完了です。
以上になります!
コメント