デスクワークを超絶快適にするおすすめギアたち詳しく見る

RPA ChallengeにPower Automate for desktopでチャレンジ!

じょじお

Power Automate for desktopを使ってExcelデータをWebシステムへ入力する作業を学習します。

目次

RPAチャレンジにPower Automate for desktopでチャレンジします。

RPAチャレンジとは?

RPAチャレンジRPA Challenge)とはUIPath社が公開しているRPA練習用のデモサイトです。

今回のゴール

ぽこがみさま

RPAチャレンジにPADでチャレンジするよ!

RPAチャレンジのサイト内に用意されたExcelデータをRPAを使ってWebフォームに全件分入力するとタイムを計測してくれます。のちほど説明しますがちょっとした意地悪要素もあって一筋縄ではいかないので学習にはおすすめです。このサイトの要件をクリアするPower Automate for desktopフローを作成するのがこの記事の目的です。

自動化する作業の概要
C:\Users\user\Downloads\challenge_ja.xlsx

▲事前準備として「RPA Challenge」のサイトに用意されたExcelファイルをダウンロードします。10人分の個人情報が記載されたExcelファイルです。この10人分のデータをWebシステムに登録します。

▲Webシステムはこんな感じのUIです。Power Automate for desktopを使ってWebシステムに下記の操作をします。

  1. 左側の赤い「開始ボタン」をクリックしてフォームの入力を開始します。
  2. 7つのフォームにExcelデータを入力します。
  3. フォーム下の「登録」ボタンを押して1人分のデータ登録を完了します。
  4. ②~③の入力作業を10人分繰り返します。
  5. 入力が完了したらWebページのスクリーンショットを取得します。
  6. 作業完了のメッセージを画面に表示させます。

※「スクリーンショット取得」はRPA Challengeの要件には無かったのですが練習として独自に追加しました。

完成したフローが稼動している動画

フローの完成品

じょじお

今回作成した実際に稼働したフローです。

Mainフロー1
Mainフロー2
サブフロー(sub_input)

フローを作成します。

メインフロー作成手順

じょじお

フローを作成していきます。

STEP
(事前準備)RPA ChallengeのサイトからExcelファイルをダウンロードします。

RPA Challenge

▲左側のボタンを押してExcelファイルをダウンロードしてPCに保存しましょう。わたしはC:\Users\user\Downloads\challenge_ja.xlsxに保存しました。

C:\Users\user\Downloads\challenge_ja.xlsx

▲ファイルの中身はこんな感じです。

STEP
Power Automate for desktopを起動して新規フローを作成します。
STEP
Excelの起動アクションを追加します。

▲「Excel」グループの中の「Excelの起動」アクションを追加します。

▲パラメータを入力します。

  • Excelの起動:次のドキュメントを開く
  • ドキュメントパス:C:\Users\user\Downloads\challenge_ja.xlsx
  • インスタンスを表示する:オン
  • 読み取り専用:オン
STEP
「Excelワークシート内のセルをアクティブ化」アクションを追加します。

▲「Excel」グループの中の「Excelワークシート内のセルをアクティブ化」アクションを追加します。

▲パラメータを入力します。

  • Excelインスタンス:%ExcelInstance%

生成される変数: %ActiveCellColumnIndex%%ActiveCellRowIndex%

「Excelワークシート内のセルをアクティブ化」アクション

「Excelワークシート内のセルをアクティブ化」アクションについて

Excelワークシート内のセルをアクティブ化」アクションはセルの使用範囲を自動判別して、データ領域(表)の最終行と最終列を変数に入れて返却してくれます。

上の図の場合、%ActiveCellColumnIndex%(最終列)はH%ActiveCellRowIndex%(最終行)は10が格納されます。

このアクションはExcel表によっては狙った範囲を認識してくれないことがあります。実際の業務でExcelファイルを読み込むときは下記記事の方法も参考になるかと思います。

STEP
「Excelワークシートから読み取り」アクションを追加します。

▲「Excel」グループの中の「Excelワークシートから読み取り」アクションを追加します。

▲パラメータを入力します。

  • Excelインスタンス:%ExcelInstance%
  • 取得:セル範囲の値
  • 先頭列:1
  • 先頭行:1
  • 最終列:%ActiveCellColumnIndex%
  • 最終行:%ActiveCellRowIndex%

%ActiveCellColumnIndex%、%ActiveCellRowIndex%

STEP
「Excelを閉じる」アクションを追加します。

▲「Excel」グループの中の「Excelを閉じる」アクションを追加します。

▲パラメータを入力します。

  • Excelインスタンス:%ExcelInstance%
  • Excelを閉じる前:ドキュメントを保存しない。
STEP
「新しいMicrosoft Edgeを起動する」アクションを追加します。

▲「Webブラウザー自動化」グループの中の「新しいMicrosoft Edgeを起動する」アクションを追加します。

  • 起動モード:新しいインスタンスを起動する
  • 初期URL:https://www.rpachallenge.com/?lang=ja
  • ウィンドウの状態:標準
  • キャッシュをクリア:オフ
  • Cookieをクリア:オフ
  • ページが読み込まれるまで待機します:オフ
  • ポップアップダイアログが表示された場合:何もしない
  • タイムアウト:60
STEP
「Webページのリンクをクリックします」アクションを追加します。

▲「ブラウザー自動化」グループの中の「Webページのリンクをクリックします」アクションを追加します。

  • Webブラウザーインスタンス:%Browser%
  • UI要素:追加方法は下記
  • ページを読み込まれるまで待機します:オン
UI要素の追加方法

UI要素の追加方法

▲UI要素のテキストボックスをクリックして「UI要素の追加」をクリックします。

▲「追跡セッションウィンドウ」が表示されるのでRPAチャレンジのサイトhttps://www.rpachallenge.com/?lang=jaをブラウザで開きます。

ここではページ内の左側にある「開始」ボタンのUI要素を取得したいので開始ボタンにマウスカーソルを合わせて赤い枠線が表示されたらCtrl+左クリックを押下します。

▲成功するとUI要素が追跡セッションウィンドウに追加されますので「完了」ボタンをクリックします。

STEP
「For each」アクションを追加します。

▲「ループ」グループの中の「For each」アクションを追加します。

  • 反復処理を行う値:%ExcelData%
STEP
サブフローを新規作成します。
サブフローの追加

サブフローの追加方法

▲フローデザイナー上部の「サブフロー」をクリックして「新しいサブフロー」をクリックします。

▲サブフロー名を入力して保存をクリックします。

▲サブフロー「sub_input」が追加されました。

じょじお

サブフローの中身は後で作成したいと思います。

STEP
(For eachの中)「サブフローの実行」アクションを追加します。

フローコントロール」グループの中の「サブフローの実行」アクションを追加します。先程作成したサブフローを選択します。

  • サブフローの実行:sub_input
STEP
「Webページのスクリーンショットを取得します」アクションを追加します。

▲「ブラウザー自動化」グループの中の「Webデータ抽出」の中の「Webページのスクリーンショットを取得します」アクションを追加します。

  • Webブラウザーインスタンス:%Browser%
  • キャプチャ:Webページ全体
  • 保存モード:ファイル
  • 画像ファイル:C:\Users\user\Downloads\rpalog.png
  • ファイル形式:PNG
STEP
「メッセージを表示」アクションを追加します。

▲「メッセージボックス」グループの中の「メッセージを表示」アクションを追加します。今回のフローは少し時間がかかる処理のため、フローが完了したタイミングでメッセージを表示させたくてこのアクションを使っています。

  • 表示するメッセージ:処理が終了しました。
STEP
「Webブラウザーを閉じる」アクションを追加します。

▲「ブラウザー自動化」グループの中の「Webブラウザーを閉じる」アクションを追加します。

  • Webブラウザーインスタンス:%Browser%
じょじお

以上でMainフローの作成は完成です。次はサブフローの処理を作成します。

サブフローを作成します。

じょじお

サブフローの中身を作成していきます。

ぽこがみさま

サブフローの処理内容は7つのフォームにExcelを入力して登録ボタンを押すまでの処理です。

STEP
サブフロータブに切り替えます。

▲「サブフロー」をクリックして先程作成したサブフロー名をクリックします。

▲サブフローに切り替わります。ここにアクションを追加しながらサブフローを作成していきます。

STEP
「Webページ内のテキストフィールドに入力する」アクションを追加します。

▲「ブラウザー自動化」グループの中の「Webフォーム入力」グループの中の「Webページ内のテキストフィールドに入力する」アクションを追加します。

▲パラメータを入力します。

  • Webブラウザーインスタンス:%Browser%
  • UI要素:UI要素の追加方法は後述します。
  • テキスト:%CurrentItem[‘名前’]%
  • 入力をエミュレートする:オン
UI要素の追加方法

UI要素の追加方法

▲UI要素のテキストボタンをクリックして「UI要素の追加」をクリックします。

▲追跡セッションウィンドウが表示されます。まずは「名前」の入力欄のUI要素を登録しましょう。Webページをブラウザで開き「名前」の入力欄にマウスカーソルをあわせます。UI要素が認識されると<input>タグの赤い枠線が表示されます。赤い枠線が確認できてからCtrl+左クリックを押します。

▲追跡セッションウィンドウにUI要素が追加されました。<input>という文言が確認できるので問題なさそうなので「完了」ボタンをクリックします。もしここで意図しないUI要素が取れていなかったらもう一度Ctrl+左クリックの操作をしてみてください。不要なUI要素はゴミ箱アイコンをクリックして削除しましょう。

STEP
Step2と同様に「Webページ内のテキストフィールドに入力する」アクションを7個分入力します。

▲こんな感じで同様の手順で7個のinputの数だけアクションを追加しましょう。

アクションのコピペ方法

同じアクションを複数追加する時はアクションのコピーを使いましょう!

じょじお

同じアクションが連続する場合は、アクションをドラッグ&ドロップで追加するよりもコピーペーストして複製した方が簡単です。

▲アクションを一度クリックして選択した状態にしてからCtrl+Cを押してアクションをコピーして、Ctrl+Vを押して張り付けます。Ctrl+Vを7回押すとアクションを7個追加することができます。

アクションを複製したら中身のUI要素を1個ずつ取得しなおし、入力するExcelData変数の値も調整しましょう。

inputに対応するExcelData変数

  • 名前のinput:%CurrentItem[‘名前’]%
  • 苗字のinput:%CurrentItem[‘苗字’]%
  • 会社名のinput:%CurrentItem[‘会社名’]%
  • 部署のinput:%CurrentItem[‘部署’]%
  • 住所のinput:%CurrentItem[‘住所’]%
  • メールアドレスのinput:%CurrentItem[‘メールアドレス’]%
  • 電話番号のinput:%CurrentItem[‘電話番号’]%
STEP
「Webページのリンクをクリックします」アクションを追加します。
  • Webブラウザーインスタンス:%Browser%
  • UI要素:追加方法は別記

UI要素の追加方法

▲「登録」ボタンのUIを取得しましょう。

じょじお

フローが完成しました!

フローを実行します。

エラーがでました!!

じょじお

フローを実行するとエラーがでてしました。

セレクター > body > app-root > div[Class=”body row1 scroll-y”] > app-rpa1 > div[Class=”row parent”] > div[Class=”instructions col s3 m3 l3 uiColorSecondary”] > div:eq(5) > button[Class=”waves-effect col s12 m12 l12 btn-large uiColorButton”][Type=”submit”] を含む要素が見つかりません。

▲UI要素がうまく認識できないようです。

UI要素を確認して修正しましょう。

実はこのフローは上記のようにエラーが発生してしまいこのままでは正常に動きませんでした。追跡セッションウィンドウで取得したUI要素に問題があるためUI要素のセレクターのチューニングが必要です。

STEP
UI要素ペインからUI要素一覧を表示して編集するUI要素をダブルクリックします。
じょじお

UI要素のセレクターをチューニングしていきます。

▲フローデザイナーの右側の「UI要素」ボタンをクリックしてUI要素の一覧に切り替えます。切り替えたらフォームのUI要素を一つ選択します。

STEP
現状のセレクターの確認とページの分析

▲現在のセレクターを見るとフォームの特定にID属性を使っています。(input[Id=”Al6qU”])

そこで、RPAチャレンジのページをブラウザの開発者ツールで見てみるとID要素が一致しないことに気づきました。何度か確認するとページを表示するたびにID要素が自動生成されているようです。これが原因のようです。

▲改めてみてみるとフォームの要素は上の図のようになっています。divがあってその中にlabelとinputのペアがあります。今回はこのdiv要素のラベルのテキストを使ってUI要素を特定していこうと思います。

じょじお

では、次のステップで修正していきます。

STEP

▲セレクターをダブルクリックします。

▲セレクタービルダーが開きます。左下のカスタムをオフにします。

STEP
セレクターを編集します。

▲セレクター編集画面になります。セレクターを直接手入力します。

▲上のようにCSSセレクタのContainsを使って表現します。

div:contains(‘苗字’) > input

▲「「苗字」という名前が含まれるdiv要素の子要素であるinput要素」という意味です。

STEP
他の要素も同じように編集します。(ついでにUI要素の名前も変更)

▲ほかのUI要素も同じように編集します。ついでに名前もわかりやすく変更しました。

STEP
おわり

以上でUI要素の編集は終わりです。

まとめ

じょじお

PADでRPAチャレンジにトライしてみたでした。

ぽこがみさま

このブログではRPA・ノーコードツール・VBA/GAS/Pythonを使った業務効率化などについて発信しています。
参考になりましたらブックマーク登録お願いします!

Power Automate学習教材

Power AutomateをKindleで学びたい方はコチラ

▲Kindleと紙媒体両方提供されています。デスクトップフロー、クラウドフロー両方の解説がある書籍です。解説の割合としてはデスクトップフロー7割・クラウドフロー3割程度の比率となっています。両者の概要をざっくり理解するのにオススメです。

Power Automate for Desktopの基本をしっかり学習するのにオススメです。この本の一番のメリットはデモWebシステム・デモ業務アプリを実際に使ってハンズオン形式で学習できる点です。本と同じシステム・アプリを使って学習できるので、本と自分の環境の違いによる「よく分からないエラー」で無駄に躓いて挫折してしまう可能性が低いです。この点でPower Automate for desktopの一冊目のテキストとしてオススメします。著者は日本屈指のRPAエンジニア集団である『ロボ研』さんです。

Power Automate クラウドフローの入門書です。日本語の解説書は数少ないのでレアかと思います。変数の解説から代表的なアクションの解説がされているので初心者におすすめの本です。

Microsoft 365/ Power Automate / Power Platform / Google Apps Script…

Power Automateを動画で学びたい方はコチラ

▲Udemyで数少ないPower Automateクラウドフローを主題にした講座です。セール時は90%OFF(1200円~2000円弱)の価格になります頻繁にセールを実施しているので絶対にセール時に購入してくださいね。満足がいかなければ返金保証制度がありますので安心してご購入いただけます。

この記事が気に入ったら
フォローしてね!

シェアしてくれたらウレシイ(·:゚д゚:·)
  • URLをコピーしました!
  • URLをコピーしました!
目次
閉じる