「Excel+Yahoo! 路線情報」で作成した交通費の自動精算ロボットを改良しよう
![](https://thinkit.co.jp/sites/default/files/styles/main_image_730x/public/main_images/ren_openrpa_main_3.jpg?itok=0AHEE7Gv)
はじめに
前回は「Yahoo!路線情報」サイトから交通費を自動取得し、Excelファイルに転記する交通費の自動精算ロボットを作成しました。今回は、この自動精算ロボットを改良し、複数人が申請する交通費(複数のExcelファイル)を1つのExcelファイルにまとめる方法を解説します。
ただし、Toolboxから「アクティビティ」を検索し、ドラッグ&ドロップするといった詳細な説明は割愛しています。不明な方は、前回までの解説を参照してください。
【補足】事前に、図1①のように「交通費」フォルダを用意し、その中に、複数の交通費ファイル(Excel)をご用意ください。
・Excelファイルのファイル名は「交通費_名前.xlsx」に統一
・Excelファイルは、図1②のように「日付」「出発」「到着」「費用」を入力
今回作成するロボットは、図2(右側)のように「名前」列と「費用」列に、それぞれのデータ(値)を転記するロボットです。
複数人の交通費精算をまとめる
ロボットの作成
- OpenRPAを起動して、図3のように「New」→「New Workflow」を選択し、任意の名前に変更します。そして、最後に「Save(保存)」します。
- 「Sequence」アクティビティの名称を「Sequence - 全体」に変更します(図4)。
- 図5の青色枠のように、各アクティビティをドラッグ&ドロップします。
【復習】「int_月」変数作成時には「int_月」アクティビティを選択し、[Ctrl]キーを押下しながら[k]キーを押下すると赤色枠のように「int_月」変数が作成されます。作成後は「Variable type(変数の型)」を「Int32(整数型)」に変更します。なお、緑色枠の「"」や「+」記号は全て半角なので注意ください。 - 図6のように各アクティビティをドラッグ&ドロップします。ここで「任意の「交通費フォルダ」を指定」と記載している文字列は、読者の皆さまの環境に合わせて設定してください(ここの「”」も半角)。
- ここで、図7のように各アクティビティをドラッグ&ドロップします。
- 図8①のように「Imports」を押下後、図8②のように「System.IO」と入力します。
- 図9のように、各アクティビティをドラッグ&ドロップします。ここでのポイントは、先ほど作成した「arr_交通費フォルダ_全員」変数を「String[]」にする方法です。まず「Variable type」のプルダウンから「Array of [T]」を選択し、その後に「String」を選択すると「Variable type」が「String[]」のようになります。また「arr_交通費フォルダ_全員」変数の Scope も「Sequence - 全体」に変更する必要があります。
- 図10のように、青色枠のように「アクティビティ」を設定します。図10①では「CreateDataTable」アクティビティを設定し、図10 ②では「WriteExcel」アクティビティを設定します。
- Toolboxに「each」と入力して検索すると「For Each」アクティビティが表示されるので、図11のようにドラッグ&ドロップします。
- 図12のように「Assign」アクティビティと「WriteLine」アクティビティを設定します(設定した「WriteLine」アクティビティの出力結果が「Output」画面に表示されるためデバッグに便利です)。
- 図13のように「WriteLine」アクティビティと「Assign」アクティビティを設定します。
- 図14のように「WriteLine」アクティビティを2つと「Assign」アクティビティを設定します。
- 図15のように「Assign」アクティビティと「WriteLine」アクティビティを設定します。「Assign」アクティビティの右辺は少し長いですが、1行で記載してください(改行はしません)。
- 図16のように「WriteLine」アクティビティと「ReadExcel」アクティビティを設定します。
- Toolboxに「foreach」と入力して検索すると「Foreach DataRow」アクティビティが表示されるので、図17のようにドラッグ&ドロップします。
- 図18のように「Assign」アクティビティを設定します。
- 図19のように「Assign」アクティビティと「WriteLine」アクティビティを設定します。
- 図20のように「Assign」「ReadCell」「WriteLine」の3つのアクティビティを設定します。
- 図21のように「Assign」アクティビティと「WriteLine」アクティビティを設定します(記号や数字は全て「半角」)。
- 図22のように「WriteCell」アクティビティを2つ設定します。1つ目の「WriteCell」アクティビティの設定は右側の青色枠に記載しています。また、2つ目の「WriteCell」アクティビティの設定は左側の紺色枠に記載しています。
- 図23のように「Close Workbook」アクティビティを2つ設定します。
- 図24のように「Assign」アクティビティと「Save File」アクティビティを設定します。
以上で、ロボットの作成は完了です。Save(保存)して、Play(実行)してみましょう。Excelのレスポンスが遅くRPAがエラーになってしまう場合は、そのエラーが発生する前後で「Delay」アクティビティを使ってみましょう。
おわりに
今回は、総務部や経理部などで行われている交通費精算の「まとめ」を行うロボットを作成しました。この方法を活用すれば、交通費精算の「まとめ」以外にも、経費精算の「まとめ」などにも応用できると思いますので、各自必要なロボットを作成してみてください(他にはOCR(文字認識)の機能やメール機能などもあります)。初めはエラーが出て、デバッグしての繰り返しだと思いますが、徐々に慣れていくと思います。
また、このOpenRPAは、UiPathと同じMicrosoft Workflow Foundationをベースに作成されています。そのため、エラーで困った場合などは、Googleで「検索したい単語 UiPath」としてワード検索すると、解決策やヒントが得られる場合があります。
さて、今回で本連載は最終回となります。最後まで閲覧いただき、ありがとうございました。
本連載で解説した「OpenRPA」はオープンソースですが、他にもオープンソースのRPAや有料のRPAもあります。そのため、皆さまの「環境(スキルや予算)」と「実現したいこと」などを考慮して適切なRPAツールを選択し、活用いただければ幸いです。
RPAロボットが可能なことはRPAロボットに任せて、人間の労力(工数)を低減させていきたいですね。