Power Automate DesktopでスクレイピングによるRPAツール制作で得た初心者的五か条のコツ


## Power Automate DesktopでRPAツール制作にチャレンジ！ ##

こんにちは！
社会のDX化の波に乗ろうと、**定期的にITツール制作**にチャレンジしているOVER40のただのサラリーマンです。

皆さんは、エクセルなどを使うときに**何回も同じようなコピペをしたり、複数のファイルをひとつにまとめたりと**めんどくさいと思うことはないでしょうか？

今回、**Power Automate Desktop(以下、PADと略します)というRPAツール**について学ぶ機会がありましたので、早速RPA制作にチャレンジしました。

主にPADの**レコーダー機能を使ったスクレイピングによるRPA制作**にチャレンジしたのですが、初心者ながらも**進め方のコツのようなものを初心者的五か条としてまとめましたので紹介します。**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2790954/7097a990-1c32-a75e-f2ad-143af74ac1d6.png)

:::note info
RPAとは
ロボテック・プロセス・オートメーションの略でこれまで人間が行ってきた作業を、**人間に代わって実行できるルールエンジンやAI、機械学習等を含む技術を活用**して代行・代替する取り組み。
:::

## １．RPAの制作結果 ##
#### （１）やりたいことのイメージ ####
 今回のチャレンジでは以下の一連の作業を**ワンクリックで自動処理**するRPAを制作しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2790954/dd77520d-1c90-b49d-32fa-54e726176e04.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2790954/907df465-5a77-1c02-b394-49c1e6346732.png)

### （２）制作に使用したツール ###
[Power Automate Desktop](https://powerautomate.microsoft.com/ja-jp/robotic-process-automation/)
**↓↓PADの使い方についてはコチラをご参照下さい↓↓** 

https://www.teijitaisya.com/powerautomatedesktop-howto/

:::note info
Power Automate DesktopとPower Automateは違う
今回のRPA制作に**Power Automate Desktop**を使用しましたが、同じような名前で**有償版のPower Automate**というツールもあります。この二つは**実行環境(PADはパソコン、PAはクラウド)やその他の機能も違う別物**ですのでご注意下さい。
:::

### （３）完成動画です ###
こちらが完成動画になります。

![〇GIF完成動画(30S).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2790954/64e082e5-f7a7-c4f9-0c45-dfc6332deb53.gif)

RPAで実行している作業の流れは表のとおりですが、全てをワンクリックで実行しています。**人間が同じことをした場合慣れた人でも5分以上かかりますが、約半分程度の時間で終了できます。**

また、**そもそもデータの取得方法や加工方法がわからないという属人的な作業でも一度制作してしまえばワンクリックで誰でもできる**ところが大きなメリットです。

今回は主にPADのレコーダー機能を使ったスクレイピングによるフロー作成を行っていますのでご紹介します。


## ２．スクレイピングを用いたフロー制作 ##
### （１）スクレイピングとは ###
スクレイピングとは簡単に言うと**情報の抽出**です。レコーダー機能を使用して実際の操作を覚えさせることでフローを作成することができます。

今回はPADのレコーダー機能を使っていますが、比較的簡単にフローを作成するできます。使いやすい機能ですが、特に**Webサイトを扱う際には注意点もありますのでご確認下さい**。

:::note warn
スクレイピングの注意事項
■**Webサイトの利用規約**
Twitter社やAmazon社などWebサイト内の情報を取り扱う際、**規約にスプレイピングの禁止や制限がある場合もあります**。利用規約を確認しておきましょう。

■**著作権法**
Webサイトは著作物の扱いになるため同意なしに取り扱うと**著作権法違反になる場合**があります。無断で使用する場合は私的使用または情報解析を目的としている場合のみです。
:::

### （２）スクレイピングの参考動画 ###
文字だけだとイメージがわきにくいと思いますので、参考動画をご参照下さい。

![GIFスプレイピング動画.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2790954/78dbd839-7e65-93c5-4db4-f4d6d224c14b.gif)

### （３）初心者的五か条（スクレイピングで制作を進めるコツ）
スクレイピングはどうがのようにゴリゴリとフロー制作を進めることができますが、いつもうまくいくとは限りません。マウスの動作を覚えさせているだけなのに、よくわからないエラーがたくさん出ます。

#### そこで、今回の制作を通じて覚えたコツを初心者的五か条として紹介します！ ####

#### 第一条・・とりあえずやってみるべし！！ ####
やりたいことの設計をしたら通常「あのアクションを使おう」とか「この動きに必要なアクションは？」とまずアクションを調べることから入ると思いますが、**スクレイピングにはあまり必要ありません。**

動画のように**レコーダー機能を使ってアクションをどんどん生成していきましょう！**

#### 第ニ条・・小さく、こまめに試すべし！！ ####
スクレイピングをしてアクションを生成すると、すぐにうまくいくときもありますが、**エラーもとても多いです。**
そこで、一度にあまり多くの動作を覚えさせようとせず、**小さめのトライ＆エラーの繰り返しで進めて下さい。**

（参考）エラーが発生した場合の対応
➀エラーが発生すると該当アクションが表示されるので確認する。
➁**エラーが発生したアクションと直近のアクションの内容**を確認する。
➂エラー内容が分かったら症状に合わせて対応する。
④エラーが発生したひとつ後のアクションに**ブレークポイントを置いて、小さい範囲でフローの再検証をする。**
➄それでもわからなければ**再度スクレイピングをかける。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2790954/7629dd5c-7d71-944f-bc2f-b4f046702130.png)

:::note info
**ブレークポイントとは**
フローの左側のステップ数の横を**クリックすると赤丸がつきますが、これがブレークポイント**です。ブレークポイントをつけると、**ひとつ前のアクションで実行が止まる**ので確認に便利です。
:::


**第三条・・コメントを使ってパート分けをすべし！！**
レコーダー機能を使うと、`コメント`という動作に影響のないアクションに挟まれて**記憶させたアクション一覧が生成されます。**

この`コメント`アクションは削除してももちろん構いませんが、`コメント`欄にそのコメント以下でどのようなアクションが入力されているのかを記入しておき、フロー全体をパート分けして下さい。

スクレイピングは動作を一つ一つ覚えるため、**フロー数が長くなる傾向**があります。フロー数が長くなった場合は特にパート分けしておかないと、どこがどんなフローかわかりません。そのため、**`コメント`を有効に活用してパート分けを行うことは重要です。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2790954/1061ec42-6104-39b0-80d0-09ff0e71e30b.png)

#### 第四条・・安易にWaitを消すなかれ！！ ####
スクレイピングをしていると、**意図せず`Wait`(待機)を表すアクション**が生成されている場合があります。このアクションはフローの待機を表すもので、マウスの動きが遅かった場合などにも発生する場合があります。

当然、削除すると待機している秒数分だけフローの進みが早くなるので、ムダなものとして削除したいところですが少しお待ち下さい。**その`Wait`はログインなどの自動処理をするタイミングのずれを解消するために生成されている`Wait`の可能性**があります。

そのため、`Wait`を削除する場合はタイミングを合わせるための`Wait`ではないのか、**本当に削除しても問題ないかを確認して実行して下さい。**（万が一の場合に復元できるようにしておきましょう）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2790954/7d97867d-bad5-8e23-4932-15ebff7de49e.png)

#### 第五条・・深く考えるな！感じろ！ (ゴリゴリ行けよ行けばわかるさ) ####
スクレイピングによるフロー生成を続けていると、ここは**何でこうなるんだろう？というアクションに出くわすことがあります**。また、動きをそのまま記憶するからか、**情報のソースが少し変わるとさっきまでできていたことが使えなくなる**、ということもあります。

ここで、その都度立ち止まっていては進むものも進みません。たぶんこれでいけるな～で正常に動いたら**そのまま突き進みましょう**。突き進んでエラーを修正していけばなんとなく理解も出来てくるはずです。

#### 決してスマートな方法ではないかもしれませんが、今回はとにかくゴリゴリ進めていこう！という精神で取り組みました。 ####

##### ↓↓こちらが全フロー９９行です↓↓ #####
[**今回の全フロー９９行**](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2790954/b7eeec03-e85b-689c-b5f5-f04a295ec29c.jpeg)

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2790954/efc2bb28-3d06-e2ae-e5f7-628d1adc6022.png" width=70%>

## さいごに~RPAを制作してみて～ ##
PADを用いてRPAツールの制作にチャレンジしました。今回はレコーダー機能を使ってスクレイピングするという手法をメインにフローを制作していきましたが、**一部は一覧からアクションを選択してフローに追加**しています。

スクレイピングはとても便利な機能ですが、更なるレベルアップを図るには**ある部分はスクレイピング、ある部分はアクション一覧から**というようにパターンに合わせた使い分けが必要になると考えています。

今回、RPAを制作してみて感じたことは、従来までRPAはエクセルなどで発生するムダな作業をロボットが代行してくれる程度に考えていましたが、マクロと違って**パソコン以外のITツールと連携することで、さまざまなパターンに発展することができる**と考えました。

まだPADのようなRPAツールの機能を使いこなせている訳ではありませんが、今後は私の周囲に人間が行っているムダな業務を解消すべく、**更なる機能改善を果たした実際の作業で使えるRPAを制作します。**　

#### ↓↓↓RPAツール制作ストーリーはnote記事をどうぞ↓↓↓ ####

https://note.com/fine_marten536/n/n8df0f4986431