件の学校所要時間ツールをSeleniumとExcel VBAで作成しました。
まずSelenium Basicをインストールします。以下のブログを参考にしました。
手順通りSelenium Basic、chrome driver、.NET Frameworkをインストールします。
.NET Frameworkインストールでエラー発生しましたが、自動でファイルをダウンロードするので、
そのまま進めます。無事にSelenium Basicをインストールしたら、Excel VBAを使ってみます。
Excelで学校リストを作成し、VBAプログラムを追加します。
まずは学校リスト説明のために動画を作成してみました。文章での説明もつけておきます。
(動画版)
(文章版)
Excelは初期状態だと[開発]メニューが非表示なので表示させます(非表示でもマクロは実行可能)。
任意のExcelファイルで学校リスト(xxx.xlsx)を作成します。以下のフォーマットでないと、
サンプルは動作しません(※あくまでもサンプルです。エラー等のトラブルは責任を負いかねます)。
学校リストのExcelファイルは以下のように作成して下さい。
赤で囲っているセルは特別な意味を持つため、解説します。
また、以下のルールを守ってファイルを作成して下さい。
A2セル・・・自宅最寄り駅を駅名で入力
B2セル・・・入力規則を使ってYahoo乗換の条件(後述)
C2セル・・・学校リストの「最寄駅到着」時刻を早めたい時に指定(0~60)
D2セル・・・自宅から最寄り駅までの時間を指定します(0~60)
E2セル・・・学校リストの全校について、自宅出発時刻を一括で検索するかどうか(後述)
F2セル・・・所要時間検索でWebブラウザが起動するので、それを自動で終了するか(後述)
B2セルとE2セル、F2セルの指定方法(入力規則を使います)
まずB2セルです。B2を選択した後、データメニューから以下のように入力規則を選びます。
「入力規則」のサブウィンドウが出るので、「リスト」を選び、カンマ区切りで値を入れます。
E2セル、F2セルは以下のように指定します(セルを選択して、入力規則サブウィンドウを出します)。
学校名を5行目以降にリストアップします。ユーザーが入力しておく項目は赤で表示します。
A列:学校名(名前に意味はありません)
B列:学校最寄り駅(Yahoo乗換案内で指定可能な駅名でなければなりません)
C列:学校最寄駅から学校までの所要時間
D列:試験日。検索には不要だが学校リストに記載しているだけ
E列:登校時刻。検索には不要だが学校リストに記載しているだけ
F列:学校最寄駅到着時刻。この列に指定必須。書式はhh:mmまたはh:mm。
G列:自宅出発時刻。検索が終了すると自動で表示される(検索結果)
H列:6か月定期代(通学)。検索が終了すると自動で表示される(検索結果)
最後にExcelの「開発」メニューを選び、デザインモードを選択して、Active Xのボタンを追加
コマンドボタンが追加されます。
コマンドボタンを選択した状態(デザインモードのまま)で「プロパティ」を押します。
プロパティウィンドウが開きます。実際にはプロパティを変えなくてもプログラムは動きますが、
見た目の問題でボタンのデザインを変えました。初期値は以下のようになるので、
以下のように変更します(CommandButtonの番号が1とか2とかは気にしないで下さい)。
ここまで完成したら、追加したコマンドボタンを(デザインモードのまま)ダブルクリックします。
VBAのエディタ画面に、コマンドボタンをクリックした際の動作を決める関数が表示されます。
この関数の「Private Sub」行と「End Sub」行の間に、Yahoo乗換案内を実行する命令を書きます。
実際のコードは少し長いので次のブログで公開します(コピー&ペーストすればOKです)。