リモートワークで導入して良かったツール詳しく見る

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

じょじお

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

目次

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

今回のゴール

ぽこがみさま

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

WebシステムにExcelをデータを入力する練習に最適なWebサイトがあります。RPAの学習用のデモサイトとして公開されている「RPA Challenge」というサイトです。サイト内に用意された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の要件には無かったのですが練習として独自に追加しました。

PADが稼動している動画

フローの完成品

じょじお

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

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要素のセレクターのチューニングが必要です。チューニングは次の記事で行っていきたいと思います。

つづく

to be continued…

ノンプログラマーでも自動化スキルを身につける。

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!
目次
閉じる