連載 [第4回] :
オープンソースのRPAツール「OpenRPA」でDXを体験してみよう!「Excel+Yahoo! 路線情報」で交通費の自動精算ロボットを作ってみよう
2023年7月7日(金)
第4回目の今回は、「Yahoo! 路線情報」サイトから交通費を自動取得し、交通費を自動精算するロボットを作成します。。
- 「str_費用」を選択後、[Ctrl]キーを押しながら[k]キーを押下すると、図51のようにString型の変数が作成されます。
- 図52のように「Assign」アクティビティをドラッグ&ドロップし、それぞれ下記のように入力します。
str_費用
System.Text.RegularExpressions.Regex.Match(str_費用,"(¥d+)").Value 右辺は、正規表現を利用して必要な情報(交通費)である「数字」だけを抽出しています。 補足ですが「System.Text.RegulationExpressions」がインポートされていない場合は、画面中央の[Imports]ボタンを押下し、「System.Text.RegulationExpressions」をインポートします(図53)。 - デバッグ用にWriteLineアクティビティをドラッグ&ドロップし、Text欄には下記のように入力します(図54)。
“str_費用 = “ + str_費用
(ダブルクォーテーション、イコール、プラス、アンダースコアは全て半角) - Toolboxで「close tab」と検索し、「Close Tab」アクティビティをドラッグ&ドロップします。その後、下記のように設定します(図55)。
①Browser = “Chrome”
②CloseAll = True - Toolboxに「write」と入力して検索すると「Write Cell」アクティビティが表示されるので、図56のようにドラッグ&ドロップします(図 56①)。「Select Types」画面が表示されるので、プルダウンから「String」を選択します(図56②)。
- 「…」をクリックして「交通費.xlsx」ファイルを指定し(図57①)、以下のように設定します(図57②③)。
②Cell = “D” + int_行番号.ToString
③Value = str_費用 - 最後に「Close Workbook」アクティビティをドラッグ&ドロップし、「…」をクリックして「交通費.xlsx」ファイルを選択します(図58①)。また「Save Changes」設定項目を「True」にします(図58②)。
以上で、ロボットの作成は完了です。Save(保存)して、Play(実行)してみましょう。Webブラウザのレスポンスが遅くRPAがエラーになってしまう場合は、そのエラーが発生する前後で「Delay」アクティビティを使ってみましょう。
補足ですが、変数には日本語は使用せず、英語またはローマ字を使うことをお勧めします。本連載では、変数に日本語(例「str_出発」)を使っていますが、筆者の経験上、変数の数が多い場合や複雑なロボットを作成した場合など、至る所で日本語が文字化けし、その度に文字化け箇所を特定して修正しました。そのようなことが皆さんの環境でも起こらないよう、変数などでは半角英数字を使いましょう。
おわりに
今回は「Yahoo! 路線情報」サイトを活用して交通費精算を行うロボットを作成しました。この方法を覚えておくと、Webサイトから情報を取得する「Webスクレイピング」にも応用できると思います。また、変数についても、極力日本語は使用せずに、英語またはローマ字を使うことも説明しました。
次回(最終回)は、複数人が申請する交通費(複数のExcelファイル)を1つのExcelファイルにまとめる方法を解説します。
連載バックナンバー
Think ITメルマガ会員登録受付中
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。