【初心者向け】RPA Power Automate Desktop 出発/到着駅から電車料金の調査

Power Automate Desktop RPA

rpa_powerautomatedesktop_出発駅到着駅から電車料金の調査

こんにちは!!Apachanです。

今回はPower Automate Desktopを使って出発駅と到着駅から電車料金を調べるフローを作成します。

Excelファイルから情報を参照したり、調べた料金をExcelファイルに書き込む処理も実装するため実務のヒントとなれば幸いです!

目次
1.前提
– 作成するフロー
– 想定利用シーン
– 事前準備
– 身につくこと
2.Excelファイルから対象データの取得
– 参考情報
– Excelの起動
– 最初の空の列や行を取得
– ワークシートから読み取り
– For each
– デバッグ
3.Webサイトから対象データの取得
– 参考情報
– Webレコーダーの起動
– Webレコーダー生成アクションの調整
– デバッグ
– エラーの対処
– フロー実行確認
4.取得データのExcelファイルへの書き込み
– ワークシートに書き込み
– Excelを閉じる
– デバッグ
5.シナリオ改修
– 課題2点
– 課題① 毎回ブラウザが起動
– 課題② 空行の対応
– 実行結果
6.まとめ

Microsoft Power Automate かんたん活用ガイド 自動化ツールの大本命! [ 日経パソコン ]

価格:2,200円
(2021/10/12 23:26時点)
感想(0件)

 

前提

作成するフロー

今回作成するフローは以下の通りとなります。

  1. Excelファイルから複数の出発/到着駅の入った調査対象データを取得
  2. 調査対象データの出発/到着駅から電車料金の確認
  3. 調べた電車料金のExcelファイルへの書き込み

電車料金調査の業務フロー

想定利用シーン

今回の電車料金に限らず社内のWebシステムを使った様々な業務に流用できる可能性があります。

業務の違いはありますが、Webへの入力やWebから取得したデータの書き込みは汎用性が高い内容です。

事前準備

以下3点準備ください。

Yahoo! 路線情報

以下サイトを利用して電車料金を調べます。

Excelファイル

対象データを取得したり、調べた料金を書き込むために利用します。

01前提_デスクトップにExcelファイル

中身は下図のようになっています。

D列に書き込むような想定となります。

01前提_参照&書き込み用Excelファイル

Google Chromeアドオン

Webレコーダーが利用できるようにPower Automate Desktopのアドオンは事前にChromeにイントールしてください。

身につくこと

前半は過去ブログで扱った内容の復習がメインとなります。

詳細は触れませんので、深堀りしたい方は参考情報より過去ブログをご確認ください。

  • Excelファイルからデータ取得方法(復習)
  • セル範囲(表形式のデータ)の扱い方(復習)
  • Webレコーダーを使って出発/到着駅から電車料金の調査(復習)
  • エラー発生時の処理方法
  • データの書き込み方法
  • 繰り返し処理を想定したWeb操作の修正方法

Excelファイルから対象データの取得

参考情報

本セクションは以前扱った内容のため、深堀りしたい方は以下ブログ記事をご確認ください。

Excelの起動

参照するExcelの起動からスタートします。

02取得_Excelの起動アクション利用

「次のドキュメントを開く」を選択して、Excelファイルのパスを設定します。

02取得_Excelの起動パラメーター設定

最初の空の列や行を取得

有効なセル範囲を取得するために最初の空の列と行を取得します。

要するに最初の空の列と行の各々1つ前が有効なデータの入った列と行になります。

02取得_Excelワークシートから最初の空の行や列を取得アクション利用

前工程のExcelInstanceから最初の空の列と行が生成されます。

02取得_Excelワークシートから最初の空の行や列を取得パラーメーター設定

ワークシートから読み取り

有効なセル範囲を取得する準備が整ったのでワークシートの読み取りを行います。

02取得_Excelワークシートから読み取りアクション利用

有効なセル範囲を取得するため下図のようにパラメーターを設定します。

⑤に関しては、本来1引かなければなりませんが、エラー処理の対応のため意図的に空白行を残します。

実務の中では⑤は以下の通りで問題ありません。

⑤ %FirstFreeRow – 1%

02取得_Excelワークシートから読み取りパラメーター設定

For each

取得したデータを行毎に取り出すためFor eachを利用します。

02取得_Foreachアクション利用

各行の値がCurrentItemに繰り返し渡されます

02取得_Foreachパラーメーター設定

デバッグ

各行の情報が正常に渡されるかメッセージの表示を使って確認します。

02取得_メッセージを表示アクション利用

CurrentItemは行全体を表す変数なため、各セルの値を取り出すためには下図のように指定します。

02取得_メッセージを表示パラメーター設定

以下ダイアログボックスが行数分表示されました!

02取得_メッセージ起動

役割が終わったらアクションを無効化をします。

削除しても問題ありませんが、再び利用する機会があるのであれば無効化の方がいいでしょう。

02取得_メッセージを表示アクション無効化

Webサイトから対象データの取得

参考情報

本セクションは以前扱った内容のため、深堀りしたい方は以下ブログ記事をご確認ください。

Webレコーダーの起動

Webレコーダーを起動して、操作内容を記録します。

02取得_完了

Google Chromeを利用して操作内容を記録します。

事前にYahoo! 路線情報は準備しておきます。

03Webレコーダー_初期設定

「記録の開始」を押下します。

03Webレコーダー_記録開始

下図の順番で入力、クリックして操作内容を記録していきます。

03Webレコーダー_初期画面の入力完了

何故か前画面の検索ボタン押下の操作アクションが二重記録されため1つだけ削除します。

03Webレコーダー_次ページへ遷移

「料金の安い順」を押下します。

03Webレコーダー_表示順変更

ルート1で表示された金額にカーソルを合わせて右クリックして、要素の値を抽出、テキストと選択します。

03Webレコーダー_テキストの抽出

ルート1の金額がinnertextに格納されました。

03Webレコーダー_録画完了

Webレコーダー生成アクションの調整

Webレコーダーで生成されたアクションが最下部にある場合は、For eachとEndの間に移動させます。

生成されたアクションを全て選択してドラッグ&ドロップ、一括で位置変更できます。

03Webレコーダー_一連のアクション生成

位置変更できたことを確認しつつ、出発駅と到着駅を固定値から変数へ変更します。

今回はExcelファイルから対象データを取得するため、変数に置き換えなければなりません。

03Webレコーダー_位置変更_foreachとEndの間

前セクションのデバッグで出発駅と到着駅の取得は確認しているため以下の変数に変更します。

出発駅 CurrentItem[1]
到着駅 CurrentItem[2]

03Webレコーダー_出発駅と到着駅の入力値変更

デバッグ

電車料金に該当するinnertextの値が正常に取得できているかどうか確認します。

03Webレコーダー_デバック用のメッセージ挿入

パラメーターは以下のように設定します。

03Webレコーダー_デバック用のメッセージ設定

フロー実行します。

03Webレコーダー_デバック用メッセージ設定完了

エラーの対処

どうやら普段見慣れない画面が出てきてエラーが発生しました。

今回は偶然このような画面が表示されましたが、実務で運用するためにはこういったエラーの対象が必要になります。

折角の機会なのでエラー対処法を考えます。

03Webレコーダー_問題発生

事前にエラーが発生した際に特定位置に移動するためのラベルを設定します。

03Webレコーダー_エラー発生時処理スキップのためのラベル設定

エラー発生時にPower Automate Desktopへ戻るとエラー発生箇所に印がついています。

こちらをダブルクリックしてエラー発生時の処理を作ります。

03Webレコーダー_エラー該当箇所確認

「エラー発生時」を押下します。

03Webレコーダー_エラー発生時の処理設定①

今回はエラー発生時に処理をスキップすための設定を作ります。

For eachのような繰り返し処理の場合、Endの直前のラベルにスキップさせることはよくあります。

03Webレコーダー_エラー発生時の処理設定②

エラー発生時の処理を設定すると以下のようにアイコンが表示されます。

03Webレコーダー_エラー発生時の処理反映

フロー実行確認

エラー発生時に処理対象行のスキップに成功しました。

また、エラー発生時以外は正常に電車料金を取得することができました。

実行結果を確認したら、メッセージボックスの表示アクションは無効化しておきます。

03Webレコーダー_実行結果①

取得データの対象ファイルへの書き込み

ワークシートに書き込み

正しい電車料金が取得できていましたので、次はその金額をExcelファイルに書き込む処理を作ります。

「Excelワークシートに書き込み」アクションを利用します。

04値書込み_Excelワークシートに書き込みアクション利用

書き込むセル番地は下図のようにA列のNoを活用します。

Noに1加算することで行数の情報になります。

行数のカウント方法

パラメーターは以下のように設定します。

No CurrentItem[0]

04値書込み_Excelワークシートに書き込みパラメーター設定

Excelを閉じる

Excelを保存して閉じる処理も追加します。

アクションの追加位置には気を付けてください。

Eor eachとEndの間に入れると全ての書き込み処理が終わる前にExcelが閉じてしまうためエラーが発生します。

04値書込み_Excelを閉じるアクション利用

「ドキュメントを保存」を選択します。

04値書込み_Excelを閉じるパラメーター設定

デバッグ

下図のようにエラー発生行以外は無事にExcelファイルへの書き込みが行われました。

しかし、意図的に残した最後の空白行が原因でフローが途中で止まりました

04値書込み_実行結果

シナリオ改修

課題2点

以下2点の対処を行います。

  • ブラウザが繰り返し処理の分だけ生成…
  • 最後の空白行のエラーの対処法…

03Webレコーダー_課題2点

課題① 毎回ブラウザが起動

毎回Google Chromeが起動しないように、For eachの中から外へ出します。

05改善_Chrome起動位置変更前

下図のように反映すればOKです。

05改善_Chrome起動位置変更後

また、繰り返し処理の最後にはYahoo! 路線情報の最初のページ移動します。

この処理を追加しなければ、2回目以降の繰り返し処理の開始が結果ページからとなりエラーになってしまいます。

05改善_Webページに移動アクション利用

以下のようにパラメーターは設定します。

05改善_Webページに移動パラメーター設定

課題② 空白行の対応

今回は最後に空白行を入れましたが、途中に入ることもあります。

下図のようにIfアクションを追加することで処理対象から除外します。

05改善_Ifアクション利用

CurrentItem[1]、すなわち出発駅が空でない場合のみ処理するよう設定します。

05改善_Ifパラメーター設定

Ifの中にWebレコーダーで記録したアクションを配置します。

05改善_完了

実行結果

フロー実行はうまくいきました。

少し長いですが、実行結果を録画したものは以下のものとなります。

まと

Power Automate Desktopを利用すれば、いくつかのテクニックを組み合わせると実務でも利用できそうなフローが作成できます。

今回のケースでは、Excelファイルのデータ取得、Webレコーダーの起動、Excelファイルへの書き込みなどの使い方をしっかり押さえることが重要です。

一つひとつは難しくありませんので、粘り強く習得していくとフロー作成が楽しくなるようにも感じます。

Apachan

約10年間の代理店営業を経験した後にITに興味を持ちプログラミングを習得。営業で培ったコミュニケーション力を活かしつつ、様々な現場の業務改善に日々奮闘中。
RPAに限らず、SaaSやGAS, VBAなど手段はクライアントの方と考えながら進めます。
RPAやプログラミング関連の書籍も執筆しました。
お仕事のご相談などお気軽にtwitterDMまでご連絡ください。

関連記事