前提条件と目標
今回は目新しい第32回の記事と第34回の記事を使った応用フローを作って見ました。
①各社員の交通費精算書とか出張申請書が入ったフォルダがあるとする。
②そのフォルダの中の交通費精算書のExcelファイルだけを読み取る。
③経理管理用の一つのファイルに一覧形式でまとめる。
④その際Yahoo路線で最安運賃を転記する。
① ↓ こういうフォルダにこんな感じでファイルが入っているとする。

交通費精算書のエクセルだけ読み取る。( ↑ 古里はWordで書いてきてるので無視する)
② ↓ こういう交通費精算書のフォーマットだとする。

③ ↓ こんな感じの経理用交通費管理リストファイルだとする。

④Yahoo路線の検索は、同一駅名があった場合はYahooの判断に任せる。日時は現在時刻前提。
予め作成した変数(定数)

FileCnt-----------------変数:交通費精算書ファイルのカウンタ >>>> 0
Kotsuhi_EndRow----------定数:交通費精算書ファイルの最後の行番号 >>>> 17
Kotsuhi_StartRow--------定数:交通費精算書ファイルの最初の行番号 >>>> 7
KotsuhiFilePath---------変数:交通費精算書ファイルのパス
KthXls_A_Col_JoshaDt-----定数:交通費精算書ファイルの乗車日の列番号 >>>> A
KthXls_B_Col_Homonsaki---定数:交通費精算書ファイルの訪問先の列番号 >>>> B
KthXls_C_Col_KoutsuKikan--定数:交通費精算書ファイルの交通機関の列番号 >>>> C
KthXls_D_Col_Shuppatsuchi-定数:交通費精算書ファイルの出発地の列番号 >>>> D
KthXls_E_Col_Tochakuchi---定数:交通費精算書ファイルの到着地の列番号 >>>> E
KthXls_F_Col_KataOu-------定数:交通費精算書ファイルの片/往の列番号 >>>> F
KthXls_G_Col_Kingaku------定数:交通費精算書ファイルの金額の列番号 >>>> G
SmrXls_A_Col_ShinseiDt----定数:経理用まとめファイルの申請日の列番号 >>>> A
SmrXls_B_Col_Bushomei-----定数:経理用まとめファイルの部署名の列番号 >>>> B
SmrXls_C_Col_Shimei-------定数:経理用まとめファイルの氏名の列番号 >>>> C
SmrXls_D_Col_JoshaDt------定数:経理用まとめファイルの乗車日の列番号 >>>> D
SmrXls_E_Col_Homonsaki----定数:経理用まとめファイルの訪問先の列番号 >>>> E
SmrXls_F_Col_Kotsukikan----定数:経理用まとめファイルの交通機関の列番号 >>>> F
SmrXls_G_Col_Shuppatsuchi--定数:経理用まとめファイルの出発地の列番号 >>>> G
SmrXls_H_Col_Tochakuchi----定数:経理用まとめファイルの到着地の列番号 >>>> H
SmrXls_I_Col_KataOu---------定数:経理用まとめファイルの片/往の列番号 >>>> I
SmrXls_J_Col_Kingaku----------定数:経理用まとめファイルの金額の列番号 >>>> J
SmrXls_K_Col_YahooMinKingaku---定数:経理用まとめファイルの最安運賃の列番号 >>>> K
SummaryFilePath----------------定数:経理用まとめファイルのパス >>>> C:\Users\XXXXXXX\Desktop\旅費交通費関連フォルダ\管理用交通費まとめリスト.xlsx
SummaryFileRow----------------変数:経理用まとめファイルの対象の行番号 >>>> 2 (2行目からスタートするので)
メインフロー

フォルダーの選択ダイアログを表示

入力ダイアログを表示

フォルダー内のファイルを取得

拡張子が.xlsxと.xls どちらファイルも読み取れるようにした。
Excelの起動

テキストを数値に変換

後々、数値型を使うのでこの処理を入れる。
テキストを数値に変換

後々、数値型を使うのでこの処理を入れる。
For each

ファイル数分繰り返す。
サブフローの実行

エクセル処理のサブフローを実行
End

Excelを閉じる

Excel_Process

コメント

↓ 【重要】Files[ N ] のNは数値型でなければならない!!
変数の設定

Excelの起動
交通費精算書を開く

Excelのワークシートから読み取り
交通費精算書のセルB3(申請日)を読み取る

Excelのワークシートから読み取り
交通費精算書のセルB4(部署名)を読み取る

Excelのワークシートから読み取り
交通費精算書のセルE4(氏名)を読み取る

テキストを数値に変換

後々、数値型を使うのでこの処理を入れる。
テキストを数値に変換

後々、数値型を使うのでこの処理を入れる。
Loop
交通費精算書の明細部分の行数分ループする。

Excelワークシートから読み取り
交通費精算書の明細部分の乗車日を読み取る。

Excelワークシートから読み取り
交通費精算書の明細部分の訪問先を読み取る。

Excelワークシートから読み取り
交通費精算書の明細部分の交通機関を読み取る。

Excelワークシートから読み取り
交通費精算書の明細部分の出発地を読み取る。

Excelワークシートから読み取り
交通費精算書の明細部分の到着地を読み取る。

Excelワークシートから読み取り
交通費精算書の明細部分の片/往を読み取る。

Excelワークシートから読み取り
交通費精算書の明細部分の金額を読み取る。

If

乗車日と到着地が両方ブランクの場合
ループを抜ける

サブフローの実行

ルート検索のサブフローを実行
Excelワークシートに書き込み

経理用まとめエクセルファイルに申請日を書き込み
Excelワークシートに書き込み

経理用まとめエクセルファイルに部署名を書き込み
Excelワークシートに書き込み

経理用まとめエクセルファイルに氏名を書き込み
Excelワークシートに書き込み

経理用まとめエクセルファイルに乗車日を書き込み
Excelワークシートに書き込み

経理用まとめエクセルファイルに訪問先を書き込み
Excelワークシートに書き込み

経理用まとめエクセルファイルに交通機関を書き込み
Excelワークシートに書き込み

経理用まとめエクセルファイルに出発地を書き込み
Excelワークシートに書き込み

経理用まとめエクセルファイルに到着地を書き込み
Excelワークシートに書き込み

経理用まとめエクセルファイルに片道/往復を書き込み
Excelワークシートに書き込み

経理用まとめエクセルファイルに金額を書き込み
Excelワークシートに書き込み

経理用まとめエクセルファイルに最安運賃を書き込み
変数を大きくする

End

Excelを閉じる

変数を大きくする

RouteSearch_Process

新しいChromeを起動する

何か分からないけど、失敗するときと成功するときがあるのでこれにチェックいれた。
失敗したら再実行してくれます。

クリップボードテキストを設定

出発地をコピー
コメント

この辺はYahoo路線情報の仕様が変わったら臨機応変に対応。
キーの送信

Ctrl+Vで貼り付けてTabで次の項目へ
クリップボードテキストを設定

到着地をコピー
キーの送信

Ctrl+Vで貼り付け
コメント

サブテキストの取得

乗車日の先頭4文字(年の部分)を取得
サブテキストの取得

乗車日の月の部分を取得
テキストを数値に変換

ゼロを取るためにこれを実行した。
↓ 後々、Yahoo路線情報のドロップダウンリスト○月を使いたいため。

サブテキストの取得

乗車日の日の部分を取得
テキストを数値に変換

ゼロを取るためにこれを実行した。
↓ 後々、Yahoo路線情報のドロップダウンリスト○日を使いたいため。

Webページでドロップダウンリストの値を設定します

Webページでドロップダウンリストの値を設定します

UI要素の追加方法は過去の記事(例えばこことか)ご参照ください。
Webページでドロップダウンリストの値を設定します

UI要素の追加方法は過去の記事(例えばこことか)ご参照ください。
マウスを画像に移動します

マウスを画像にあわせてクリックする方法はここをご参考にしてください。
Webページのリンクをクリックします

UI要素の追加方法は過去の記事(例えばこことか)ご参照ください。
Webページ上の要素の詳細を取得します

UI要素の追加方法は過去の記事(例えばこことか)ご参照ください。
Webブラウザーを閉じる

▶で実行してみる








yahoo路線の最安料金は片道なので2倍しないといけないですが、概ねできていそうです。
渡真利は東京駅から大手町は徒歩で行けってことでゼロ円です。
以上、ご参考になれば幸いです!
