MS PowerAutomate Desktopに触れてみた

## はじめに
この記事はMS PowerAutomate Desktopについての備忘録になります。
今後増えていく予定

## MS PowerAutomate Desktopとは？
* Microsoftが提供する、端末上で実行可能なRPAツール
* ローカルアプリやWebアプリを自動実行することができる
* 元はPower Automateの一機能。あちらはクラウド向け、こちらはデスクトップ向け
:::note info
* Power Automateはクラウド型ワークフロー自動化ツール
* 利用にはMS Office 365が必要
:::
* 略称は「PAD」。以下、PADで記載


## 導入
:::note warn
PADの利用にはMicrosoftアカウントが必要
個人アカウントまたは職場アカウントを取得する必要がある
:::

### 環境
* Windows 11
* Microsoft PowerAutomate Desktop（2.41）

### 「Power Automate Desktop」のインストール
以下にアクセスし、PADのインストーラーをダウンロード
https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/install#install-power-automate-using-the-msi-installer
　
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428110/80b6e3de-b419-15ce-78f7-de686ac174f0.png)
　
ダウンロードしたインストーラーを実行して、PADのインストールを行う
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428110/63143c61-4795-928c-d5fe-a824dbd664eb.png)
　
インストールすると、PADのアプリが追加されます。


## 画面イメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428110/d1e4b566-21dc-28f1-589d-645ada44f22d.png)

画面の真ん中が実行するフロー領域
左側のペインがアクションリストとなり、ツリーを展開すると各機能ごとのアクションが表示されます。

<img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428110/d0ca184d-59b2-297a-eb8b-f0c679e9d0f8.png">

ファイルやWebページの操作など、ここからアクションを選択してフローに組み込んでいきます。

## フローの作成

簡単に、Chromeを立ち上げてGoogleにアクセス、キーワードを検索して画面表示をしてみます。

### 1. 新規フローの作成

「＋新しいフロー」をクリックして新規のフローを作成
<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428110/e29755c5-8b1f-1572-544c-be02bef47dc7.png">

新規フローのフロー名を入力して、「作成」をクリック
今回は「ブラウザの起動」という名前でフローを作成
<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428110/af8b8ff7-687a-59a1-acb2-94aed1097c0d.png">

<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428110/13f00c97-23cc-2994-95c8-edc67aabd444.png">

新規フローを起こすと、フロー作成画面が表示されます。
　
### 2. ブラウザを起動する

Chromeを立ち上げるフローを追加します。
「アクション」の一覧から、ブラウザを起動するアクションを選択します。

ツリーから探すのは大変なので、検索機能を使ってアクションを探しましょう。
アクション内の検索用テキストボックスに、「ブラウザ」と入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428110/7b04a306-a6fe-e526-efb7-60a2609fc7f7.png)

アクションの一覧に、ブラウザに関連するアクションだけが抽出されて表示されます。
ここから「新しい Chrome を起動する」をダブルクリックor真ん中のフロー領域にアクションをドラッグ＆ドロップで放り込みます。

<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428110/80ff469e-8d35-773e-19b5-5cec854b251f.png">

アクションの詳細を設定する画面が表示されるので、以下の通りに設定します。

<table>
  <thead>
    <tr>
      <th>オプション</th> <th>説明</th>
    </tr>
  </thead>
  <tr>
    <td>起動モード</td> <td>新しいインスタンスを起動する</td>
  </tr>
  <tr>
    <td>初期URL</td> <td>https://www.google.co.jp/</td>
  </tr>
  <tr>
    <td>ウィンドウの状態</td> <td>標準</td>
  </tr>
</table>

このアクションの実行により、 **変数「Browser」** が生成されます。
今後、フローでブラウザを操作する際はこの変数「Browser」を指定していきます。

<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428110/a9718b9c-ffe0-364a-4da9-0324eff453df.png">


### 3. 検索バーにキーワードを入力する

開いたChromeのブラウザから、キーワードを入力するアクションを設定しましょう。
アクションのリストから、「Web ページのテキスト フィールドに入力する」を選択します。
（「ブラウザ」で絞り込みした状態から選べます）

<img width="300" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428110/897b7a8d-9340-6b27-de58-b2c73e1a279d.png">

詳細の画面
<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428110/31533052-c1c5-a163-e477-72c6f79c606b.png">

Web ブラウザー インスタンスは、手前のフローで生成した **「Browser」** を指定。
（指定する場合は「%」で囲みます）

UI要素には、アクションを設定する項目を選択します。
「UI 要素の追加」をクリックして項目の選択画面を表示します。

#### UI要素ピッカー
<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428110/7c028a9c-a6cb-8435-f0d4-d6aa4b4e8cb2.png">

立ち上げたブラウザと別に **「UI 要素ピッカー」** の画面が表示されます。
画面上に表示される赤枠はアクションの操作候補で、 ```「Ctrl＋右クリック」``` で選択するとUI要素に指定されます。

今回は検索バーを選択
<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428110/991cac2c-dbf2-6a8a-c6bc-c8cfa8c7b58c.png">

検索キーワードは「qiita」を入力

<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428110/c14546f3-3bb1-77f4-5965-fa27c0aeacec.png">

### 4. 検索を実行する
検索キーワードまで入力しました。では検索しましょう。
…と思ったら検索用のボタンがありません。are-?
<font color="Lavender">Edgeは虫眼鏡クリックしたら検索できるのに…</font>

なので検索バーでエンターキーを押すアクションを追加しましょう。
アクションの検索で「キー」を入力して絞り込みます。

<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428110/9ac02623-4a17-84a3-2cd2-0632b25595fd.png">

絞り込んだ中から **「キーの送信」** のアクションを選択します。

<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428110/a2507c21-9de7-c608-d1cc-6f02a2815f6e.png">

詳細画面では、次の通りにオプションを設定します。
<table>
  <thead>
    <tr>
      <th>オプション</th> <th>説明</th>
    </tr>
  </thead>
  <tr>
    <td>キーの送信先</td> <td>ウィンドウのインスタンス/ハンドル</td>
  </tr>
  <tr>
    <td>ウィンドウ インスタンス</td> <td>%Browser%</td>
  </tr>
  <tr>
    <td>送信するテキスト</td> <td><font color="Red">{Return} (※)</font></td>
  </tr>
  <tr>
    <td>キー入力の感覚の遅延</td> <td>10</td>
  </tr>
</table>

(※)　「{Return}」は特殊キーから選んだエンターキーの指定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428110/796b8895-a1d0-6a03-36e1-56d12b6050f0.png)

## 実行

フローの一覧から再生ボタンをクリックしてフローを実行します。
※GIFなのでちょっと動きが早く見えますが、実際はもっとゆっくりです。


![gif-output-Tue21May2024124320GMT.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/428110/57687f34-ef46-eca9-840b-8cc2894bcfc3.gif)

画面右下に実行中のメッセージが表示され、フローが開始されます。
ブラウザが立ち上がり、検索キーワードを入れて検索画面まで遷移しました。


### まとめ
業務で初めてPADを触りましたが、UIもわかりやすく使い勝手の良さを感じました。
他にもExcelファイルを開いて操作したり、接続文字列を指定してDBにSQLを直接実行などもの操作もできるようで、今後も色々といじくって発掘してみたいです。

## 参考

無償提供の Power Automate Desktop でフローを自動化しよう!
https://www.microsoft.com/ja-jp/biz/smb/column-power-automate-desktop