Power Automate for desktopを使ってみよう ー （初級編）気象データ取得の自動化

皆さんこんにちは、マイクロソフトの川端です。
Power Automate for desktop (通称PAD) を使い始める方向けのトレーニングコンテンツを提供します。
気象庁から提供されている一般公開データをPADで自動取得する方法を題材にしています

[初級編　続編はこちら]
[上級編はこちら]

# 1. 事前準備
- 最新版のPower Automate for desktopのダウンロード：https://flow.microsoft.com/ja-jp/desktop/
    - **2023年11月 時点の最新版は2.38です（→[最新版の確認方法]）。**
    - 最新版でない場合には以下よりインストーラーをダウンロードしお手持ちの端末環境でインストールしてください
        -  https://docs.microsoft.com/ja-jp/power-automate/desktop-flows/install#install-power-automate
- インストール、初期セットアップ手順: ロボ研@K2_kzyさんがまとめて頂いている内容が分かりやすいです。
    - https://qiita.com/K2_kzy/items/b8b22edbf56b65248949#2-%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%A9%E3%83%BC%E8%B5%B7%E5%8B%95
- 本セッションでは出来る限り動作環境を合わせるため、ブラウザはEdgeかChromeをお使いください。
- データ取得対象ページ
    - 気象庁天気予報データ
        - https://www.jma.go.jp/bosai/forecast/
    - 東京の天気予報(area_code=130000)
        - https://www.jma.go.jp/bosai/forecast/#area_type=offices&area_code=130000
    - 参考（上級編で扱います）APIによるデータ(json)取得対象（東京）
        - https://www.jma.go.jp/bosai/forecast/data/forecast/130000.json


# 2. 初級編
### レコーダーでウェブサイトの情報を取得しよう
- PADのコンソール画面から[新しいフロー]を選択肢、デスクトップフローの作成を始めます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/186f9c97-2f97-0fe2-d073-8f76c83b5737.png)
- 適当な名前を付けてフローを作成していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/ad93fc51-0991-7dff-a889-b0fe43b46c3c.png)
- レコーダーを選択し、データの取得を行います(追記：以前のデスクトップレコーダーとウェブレコーダーで分かれていた機能は統合され、ターゲットブラウザも自動的に認識可能になりました）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/17780278-59a3-89ff-3972-b201246c14da.png)

<!-- 
- お使いのブラウザを指定します（Edge/Chrome)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/2b9391d4-9dc1-10af-d38d-bed9ce92bdd8.png)
-->

- 対象ブラウザ(Edge/Chrome)を立ち上げ、予め以下のURLを指定しておきます(東京の場合には：https://www.jma.go.jp/bosai/forecast/#area_type=offices&area_code=130000)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/2e4be5a7-0246-0e93-3236-f40492cd68c8.png)

- レコーダーウィンドウが立ち上がるので、[記録]ボタンを押します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/02aefa4a-db7d-066a-df5b-c4b4e19cf0a6.png)

- そのままマウスをターゲットのブラウザウィンドウ(Edge)にマウスオーバーすると、画面のオブジェクトを認識させてやることができます。
    - 画面上でいろいろとホバリングして試してみてください！
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/b32b7cd0-52b3-f023-4e5f-4b503882411f.png)
- ホバリングした状態で、右クリックすると[要素の値を抽出]という選択肢が出るので、テキスト情報を取得します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/2822818e-0c4a-cc6b-6bad-9bdf9a5c98de.png)

- 記録を行うと、レコーダーに[記録されたアクション]が撮り貯められていきます。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/e11b631c-d591-6191-daa7-db1c09061577.png)


- 複数の値を取得していきましょう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/a436c7b0-e341-c24c-9fb9-1db87e53e11f.png)

- 複数の値選択をすることで、ターゲットの表形式を読み込み、レコードがリストの形式で抽出されていきます（リスト形式で、必要に応じてより多くの画面要素を取得できます）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/a469d413-7ff6-b503-f0d1-e0c37b1b188f.png)
- 取得が完了すると、レコーディングされた結果が自動的にフローデザイナーの画面に入ってきます。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/cf2bdc60-4d30-dec2-07c4-bca4217ac188.png)

#### ※（上記内容のワークアラウンド）レコーダーの操作が難しい場合
上記処理が難しい場合には、レコーダーではなく、デザイナー画面から一つずつアクションを作成していきましょう。

まず、[新しいMicrosoft Edgeを起動]のアクションを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/46a7db67-41e7-bee3-5f72-b606d07a94ae.png)
-　起動モード：新しいインスタンスを起動する
-　初期URL：　https://www.jma.go.jp/bosai/forecast/#area_type=offices&area_code=130000
-　ウィンドウの状態：標準

で保存します。


[ブラウザ自動化]＞[Webデータ抽出]＞[Webページからデータを抽出する]を選択しましょう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/d43e49a6-4de0-4d34-11ef-2adce03ef58c.png)

下記状態でブラウザにフォーカスを変えると、ウェブページからのデータの抽出を個別に行うことができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/47355e15-da6b-5d28-e67c-bcefc233eed6.png)

ライブウェブヘルパーの画面が出ますので、その状態で対象のセルの情報を取得します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/f61aba29-c4ab-45c7-0003-3854bc898724.png)

要素の値を抽出から要素の値を抽出します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/dd6de3ff-c2e8-f2e6-cf4b-e64db6fa62e5.png)

更に複数の値を指定することでリスト形式で値を保存することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/d9f789bd-a286-120a-3e31-f4ccd848c3f7.png)

ライブWebヘルパーで取得できたリストが２０項目すべて表示されますので、うまく取れていることを確認してみてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/4e766d8c-4180-f308-b92d-df8c7628f4d9.png)




### レコーダーで取得した一連のアクションを動かしてみよう
- [実行]ボタンを押すことで、先ほどの気象データの取得でレコーディングした自動化フローを実際に実行することができます
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/13d4b4a5-4682-3ad2-baec-e4808dc7111b.png)
- 実際に実行してみると、ウィンドウが立ち上がりデータの取得が行われている様子が確認できます。
    - 実行結果は[フロー変数]に保存されているので、実際にどのようにデータが撮れているのか確認してみましょう。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/7b1564e3-db56-db0e-ea52-2f14d59c0fa4.png)
- OutputDataのフロー変数を参照すると、ウェブサイト上のテーブルが取得できていることが確認できます。
    - リスト形式のデータになっており、値を指定するときは%OutputData[2]%などとして値をとりだしたり、%OutputData[2:3]%などとして部分的なリストを取り出すことが可能です
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/f978ab32-22b4-0d43-bcf2-2d4b9eb1e2f4.png)

### 取得できた気象情報をエクセルのデータとして書き込んでみよう
- アクションメニューから、「excel」と検索すると、アクションのアイテムを検索することが可能です。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/6bcd8fe8-b6a2-80af-1e37-3f82d6d65232.png)
- ドラッグ＆ドロップで[Excelの起動]アクションを先ほどの一連のアクションの末尾に追加しましょう
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/2a530861-668e-6b2b-db9e-b902a8e71777.png)
- 設定内容はそのままで保存します
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/0ac8926d-3934-db29-bb60-78d70f89f6e2.png)
- （念のため、再度デスクトップフローを最初から実行して、空のエクセルドキュメントが立ち上げあるかどうか、動作を確認してみてもよいでしょう）
- 次に[Excelワークシートに書き込む]のアクションを末尾に追加し、以下のように設定してみましょう。
    - 書き込む値：東京地方: 天気は%OutputData[2]%で、風は%OutputData[3]%です
    - 書き込みモード：指定したセル上
    - 列：１
    - 行：１
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/1f2f2b5d-94cc-491e-8641-94c62c5391ea.png)
- 再度実行を行うと、エクセルが立ち上がり、データの書き込みが行われていることが確認できます
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/69078d54-16a8-13b7-5bdc-e53784d74345.png)
- 最後に、エクセルファイルを保存するアクションを追加します。
    - Excelを閉じる前：[ドキュメントを保存]、もしくは[名前を付けてドキュメントを保存]を選択しておきましょう
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/758840c7-58a4-fd19-14d0-cad650b859c2.png)
- 標準のドキュメントフォルダ(C:\Users\ユーザー名\Documents)や、指定したドキュメントパスの領域にエクセルファイルが保存されていることを確認しましょう
- デスクトップフローの[保存]ボタンを押し、作成したフローを保存しましょう
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/808554/86d6f4ef-cdce-030a-ddf9-783dcc9244b6.png)

# 3.まとめ
フローデザイナーの画面操作、レコーダーの使い方、その後のエクセルファイルへの保存など、データの取得から保存を行う一連の基本操作をご紹介いたしました。

[最新版の確認方法]:https://qiita.com/YutoKa/private/bd5047681bbdb73b82bd
[公式ドキュメント]:https://docs.microsoft.com/ja-jp/power-automate/desktop-flows/introduction
[Power Automate Community]:https://powerusers.microsoft.com/t5/Microsoft-Power-Automate/ct-p/MPACommunity
[上級編はこちら]:https://qiita.com/YutoKa/items/e7b04b0907e82ae27ef1
[初級編　続編はこちら]:https://qiita.com/YutoKa/private/31246904207ebff65921