「Yahoo!乗換案内」から交通費を調べて、Excelに転記するロボットを作りましょう!
- 1 作業内容
- 2 それでは実際に作成していきましょう。
- 2.1 (1)「Excelアプリケーションスコープ」を挿入し、Excelファイルを指定する。
- 2.2 (2)「範囲を読み込み」アクティビティを挿入する。
- 2.3 (3)「繰り返し(各行)」アクティビティを挿入。
- 2.4 (4)1行目の出発地(B列)の値を抽出、変数dtStartに格納する。
- 2.5 (5)「Yahoo!乗換案内」を開き、取得した値を入力する。
- 2.6 (6)出発地・到着地を入力し、検索ボタンをクリックする。
- 2.7 (7)次画面で「料金の安い順」をクリックする。
- 2.8 (8)一番安い料金をテキストとして取得します。
- 2.9 (9)セルに書き込みます。
- 2.10 (10)次の行に移るためにカウンターを1増やします。
- 2.11 (11)ブラウザを閉じます。
作業内容
今回の作業内容は以下の通りです。
あらかじめExcelには以下の内容(出発駅/到着駅)が記載されています。
ここから出発駅と到着駅のデータを抽出し、「Yahoo!乗換案内」で最安値を検索します。
手順を確認しましょう!
(いくつか方法はありますが今回は以下の手順で行います)
1:Excelファイルを開き、表全体をデータテーブル型の変数dtTableに格納する
2:1行目の出発駅(B列)の値を抽出、変数dtStartに格納する
3:1行目の到着駅(C列)の値を抽出、変数dtGoalに格納する
4:「Yahoo!乗換案内」をブラウザで開く
5:出発駅を入力する箇所に変数dtStartの値を入力する
6:到着駅を入力する箇所に変数dtGoalの値を入力する
7:検索ボタンをクリックする
8:「料金の安い順」をクリックする
9:最安値で表示された料金を抽出、変数dtMoneyに格納する
10:Excelに戻り1行目の運賃(D列)に変数dtMoneyの値を入力する
11:ブラウザを閉じる
12:2行目以降2~11を繰り返す。(変数Counterを用いて繰り返しを行う)
実際の動きはこのようになります。
それでは実際に作成していきましょう。
今回は下記のような表を用意します。
Excelの表を読み込む手順は以下の通りです。
(1)「Excelアプリケーションスコープ」を挿入し、Excelファイルを指定する。
(2)「範囲を読み込み」アクティビティを挿入する。
【入力】
シート名:該当シート名(ここではSheet1)
範囲:一番左上のセル(ここではセルB2)
【オプション】
「ヘッダーの追加」にチェック(ヘッダーが存在するため)
【出力】
データテーブル dtTable(DataTable型変数)
(3)「繰り返し(各行)」アクティビティを挿入。
要素:row
コレクション:dtTable
※以後の処理はこのアクティビティの中に入力します。
(4)1行目の出発地(B列)の値を抽出、変数dtStartに格納する。
「代入」アクティビティを使います。
dtStart = row.Item(0).ToString
row.Item(0).ToString ← 検索する行の0番目の要素をStrings型に変換する
要素は0から始まります。つまり1行目が0となります。
よって、今回の場合、B列から表を抽出しているため
B列=Item(0)
C列=Item(1)
D列=Item(2) となるわけです。
同様にして到着地(C列)は
dtGoal = row.Item(1).ToString
となるわけです。
(5)「Yahoo!乗換案内」を開き、取得した値を入力する。
「ブラウザーを開く」アクティビティを使います。
【URL】
”https://transit.yahoo.co.jp/“
(””は必要です)
(6)出発地・到着地を入力し、検索ボタンをクリックする。
入力には「文字を入力」アクティビティ
出発地
【テキスト】
dtStart
到着地
【テキスト】
dtGoal
クリックには「クリック」アクティビティを使用します。
(7)次画面で「料金の安い順」をクリックする。
「クリック」アクティビティを使用します
(8)一番安い料金をテキストとして取得します。
「テキストを取得」アクティビティを使用します。
【出力】
値:dtMoney (String型変数)
(9)セルに書き込みます。
Int32型の変数Counterを用意します。
初期値に行数の3を設定することで
繰り返し用のカウンターにも使用することが可能です。
【シート名】
“Sheet1”
【範囲】
“D”+counter
※初期値を3に設定しているので、最初に書き込まれるセルはD3となります。
【値】
dtMoney
(10)次の行に移るためにカウンターを1増やします。
「代入」アクティビティを用いて以下のように設定します。
(11)ブラウザを閉じます。
「アプリケーションを閉じる」アクティビティを使用します。
今回の変数は以下のようになります
いかがでしょうか、一見複雑に見えますが、手順を分解し一つ一つの操作をアクティビティに当てはめると意外に簡単に作成できます。ぜひ試してみてください。
[kanren postid=”78059″]