以前ブログで「Power Automate for Desktop」のスキルを身に着けると話していた件について、その成果を書きたいと思います。
※以降「Power Automate for Desktop」は、「PAD」とします。
結論からいうと、ページをめくってデータを取得する場合は、ページャー機能を使うよりも手動風で操作するとデータの取得がやりやすいことが分かりました。
以下の「【最強のRPAツール講座】Power Automate for desktopとは?できることや活用事例を無料で学ぶ、使い方入門【たった1動画で全てが分かるパワーオートメイトデスクトップ(PAD)】」のYouTube動画は見終えました。
この動画は、4時間程度でPADの以下の基本事項を学ぶことができるためおすすめです。
学べること
- Webページやエクセルからデータの抽出
- エクセルからWebページへのデータの転記
- Webページからエクセルへのデータの転記
ページャーによるページの移動(失敗)
今回学んだことを基にさっそくWebページからデータを抽出に挑戦。
以下の画像のような次へのボタンが無い場合にページャーを使ってめくろうとしましたが失敗しました。
※>は次へではなく、ここに表示されていない次のページグループ(6~)が表示されるボタンです。
色々と試しましたが、ページャーではページめくりができないようです。
手動風によるページの移動(ページめくりは成功)
何か良い方法はないか考えた結果、手動風にページをめくる方法を思いついたので試してみることにしました。
手順については以下になります。
この方法では、ページ移動には成功しましたが、最後のページのデータしか抽出できませんでした。
手順
- 1ページ分のデータを抽出する
「ブラウザー自動化」⇒「Webデータを抽出」⇒「Webページからデータを抽出する」
- ページ内のページ番号記載部分まで移動
「ブラウザー自動化」⇒「Webフォーム入力」⇒「Webページ上のテキストフィールドをフォーカス」
- ページボタンにマウスを移動
「ブラウザー自動化」⇒「Webページの要素にマウスをポイント」
※設定が重要!!以下で詳しく解説します。
- マウスで左クリック
「マウスとキーボード」⇒「マウスクリックの送信」
- 1~4をループ設定
「ループ」⇒「Loop」
※2ページ目から選択するため初期値は2にする
注意点
注意点について順番に解説したいと思います。1、4、5については解説が不要だと思われるため省略します。
2について解説します。
手動風にページ番号をクリックする場合は、画面にページ番号が表示されている必要があります。そのため、ページ番号記載部付近まで移動するために入れる動作になります。
ページが切り替わっても変わらない画像を目印にしましょう。
3について解説します。
この時に自動でマウスポインタを移動する設定にした場合は、ページ番号をクリックしてもページ番号が黄色になるだけで次のページに移動できません。
なので、マウスを動かしてホバーするを選択します。
こうすることにより、手動でマウスを動かすのと同じように動くため、マウスがハンドに変わりボタンを押せるようになります。
UI要素については、UI要素を登録した後にセレクタービルダーを開いて編集します。
セレクタービルダーを開いたあとは、テキストエディタ―にチェックを入れます。
今回の場合は、「a[Text=”2″]」となっていたので、2の部分をループに使っている変数に置き換えることにより、ループ変数の数値が変わると新たなページを選択するようになりました。
例:a[Text=”%変数%“]
抽出データの移行(エクセルを活用!これで何とかデータ化に成功)
手動風に動かすことで、ページ移動はできるようになりました。
しかし、最後のページしかデータの抽出ができないので、何か良い方法がないか検討してみることにしました。
読み込んだページを1ページごとにエクセルに書き込むのはどうかと思い、早速検証してみました。
すべての抽出データをエクセルに記載することができたので成功です!!
できれば、PADに全てのデータを抽出してからエクセルに書き込みをしたかったのですが、結果的に同じことができたのでよかったです。
手順
- 手動風によるページの移動の前にエクセルの起動と変数を追加
「Excel」⇒「Excelの起動」、 「変数」⇒「変数の設定」
- 手動風によるページの移動のループの最後の行にエクセルへの書き込みを追加
「Excel」⇒「Excelに書き込む」
※設定が重要です!!以下で詳しく解説します。
- 2の後ろに変数の値を大きくする設定を入れる
「変数」⇒「変数を大きくする」
注意点
2の注意点について解説したいと思います。
エクセルに書き込む行については、変数を活用します。エクセルに書き込んだ後、変数を大きくすることで、ループ処理で次のページのデータを書き込んだときに前のページで抽出したデータに被らなくなります。
例:1ページに10個データがある場合は、変数を10大きくすることにより、次のデータの行の位置が元の変数+10になるため、A11、A21…となり被らないことになります。
まとめ
上記のフローをまとめると以下になります。こちらを見て全体の流れをつかんでいただけると幸いです。
おわりに
ページャー機能を使わずにデータ抽出をする方法はいかがだったでしょうか。
PADを使えば色々とできそうですが、設定を考えるのが難しそうです。
早くPADを使いこなせるようになって、仕事などの効率化を目指せるようにがんばります。
コメント