こんにちはらんがもです!
2021年の3月にMicrosoftから発表があり、MicrosoftのRPAツールであるPower Automate DesktopがWindows10ユーザー対象に無償化されました。
これはRPAに携わる人間にとっては驚くべきことだったのではないでしょうか。
というのも、例えば日本企業でよく利用されているRPAツールであるWinActorなどでは最小限の導入でも年間50万円〜80万円程度の費用が発生するはずです。(2021年6月現在)
こういったコストがかかるはずのRPAツールが無償化されたというのはすごいことだと思います。
もちろん有償のRPAツールの方が、機能面やサポート面では優れているのかもしれませんが、見た感じこのPower Automate Desktopもかなりの機能を備えているように思えます。
この衝撃的な発表を受け、既存の有償RPAツールから無償化されたPower Automate Desktopに移行しようとしている事業者の方も多くいるのではないでしょうか。
かくいう私も有償RPAツールを利用して、簡単な業務を実施しています。
簡単に説明すると以下のような内容です。
①:Excelのシートを読み込み。
②:Excelのn行目のデータをアプリに入力。
③:②が成功したらExcelのセルに「入力完了」と入力。
④:nを+1する。
⑤:最終行まで②③④を繰り返す。
今回はPower Automate Desktopで同様の処理をすることが可能か、試していきたいと思います。
目次
Power Automate Desktopのインストール
Power Automate Desktopはマイクロソフトのサイトから無償でダウンロードすることができます。
使用するにはマイクロソフトアカウントが必要です。また、作成したシナリオはマイクロソフトアカウントのOneDrive領域に保存されます。
作成するシナリオ
今回Power Automate Desktopで作成するシナリオについてですが、まず以下のようなExcelシートを用意します。

そして当ブログの問い合わせフォームで、このExcelの内容の問い合わせ3件分を自動入力して送信ボタンを押すという、まったく使い道がないシナリオを作成してみます(笑)

シナリオ全体図
実際に作成したシナリオはこんな感じです。

順に見ていきます。
①Excelの起動
上記で作成していたExcelファイル(シート)を読み込むアクションです。読み込んだシートがExcelInstanceという変数に格納されます。

②変数の設定
繰り返し処理用の変数です。

宛先という表記がわかりにくいのですが、変数に設定する値のことです。
NewVar = 2;
というように変数NewVarに2を代入しています。上記のExcelデータの2行目から処理をしていくので、2としています。
③Excelワークシートから読み取り
①で読み込んだExcelInstance(Excelファイル)のどの範囲を読み込むか指定します。ここではA2(2行1列)からD4(4行4列)までの範囲を読み込みます。先ほど2を代入した変数NewVarを使用して以下のように指定しました。読み込んだ範囲がExcelDataという変数に格納されます。

④新しいChromeを起動する
Google Chromeで当サイトの問い合わせページを開きます。Google Chromeの処理を自動化するためには拡張機能をインストールしておく必要があるので注意してください。

⑤For each(繰り返し処理)
このFor eachを使用することで、先ほど指定した範囲ExcelDataの先頭行(2行目)から最終行(4行目)までを1行ずつ読み込んで反復処理をすることができます。CurrentItemというのが読み込んだ行のデータです。

⑥~⑧Webページ内のテキストフィールドに入力する
問い合わせフォームに、読み込んでいる行(CurrentItem)の値を入力する処理です。
ヒントがなかったので手こずったのですが、その行の1列目の値を指定したい場合は%CurrentItem[0]%のように[0]や[1]、[2]などをつけます。
1列目の場合は[0]、2列目の場合は[1]となるように数値がずれるのも特徴です。

UI要素などの値はブラウザーで指定すれば自動的に読み取ってくれます。
⑨Webページのボタンを押します
送信ボタンをクリックする処理です。

⑩Excelワークシートに書き込み
今度はExcelに書き込む処理です。実行結果の列に「OK」と書き込みます。

ここではCurrentItemの変数を使って処理する方法がわからなかった(もしくはできない?)ので変数を使用しています。このために②で変数を作成しました。
⑪の処理によって繰り返しごとにNewVarの値を1ずつ大きくしていきます。
⑪変数(NewVar)を大きくする
NewVarの値を1大きくします。最初のループでは2行目、次のループでは3行目というようにループごとにNewVarの値が大きくなっていきます。

実行結果
作成したシナリオを実行すると、自動で問い合わせページを開き、Excelのデータを読み込んで3件分の問い合わせが自動的でされます。
また、ExcelデータのD列には以下のようにOKと入力されていました。

そしてメールを開くと、以下のように迷惑なメールが3件届いていました(笑)

おわりに
Power Automate Desktopを上手く使うことができればいろんな業務を自動化することができそうですね。
今回作ったシナリオで気になった部分は、For eachの繰り返し処理の中で、わざわざNewVarという変数を作成しなければ、Excelファイルへの書き込みができなかった点です。何か方法があるのでしょうか?

詳しい方がいらっしゃればコメントいただければ幸いです!ありがとうございました!
似たような感じの作業を毎週手入力でやっていたのですが、最近Power Automate Desktopの存在を知り、こちらの記事のおかげで作業が格段に楽になりました!
ループの処理の方法(2行目→3行目→4行目…)がすごく分かりやすくて、初心者の私でもなんとかなりました。本当に感謝しています。ありがとうございました!
おお!お役に立てて何よりです!
もしまた何か困りごと等あればお気軽にコメント等いただければと思います!
(解決できるかわかりませんが…)