最近話題のPower Automate Desktop(以下PAD)を使ってみたいと思います。
良くあるシチュエーションだと思いますが、APIの実行結果をExcelに出力します。
Power Automate Desktop
マイクロソフトのRPAツールとなっております。こちらからダウンロードできます。
楽天API
Web APIだったら別に何でもよかったのですが、おなじみの楽天さんの楽天市場系APIを利用します。
楽天API情報を使用するには、Rakuten Developersより
「新規アプリ登録」を行いアプリケーションIDを取得する必要があります。
簡単な情報を入力してすぐに取得することができました(はてなブログで作ったものでも申請が通りました)。
利用するAPI
楽天市場商品検索API
を使いたいと思います。
下記のような感じで、GETでアクセスできます。
https://app.rakuten.co.jp/services/api/IchibaItem/Search/20170706
?format=json
&keyword=楽天
&genreId=555086
&applicationId=[アプリID]
詳しい仕様はこちらでご確認いただければと思います。
楽天市場商品検索APIの出力形式ですが、以下のような形となります。
{
"Items": [
{
"Item": {
"itemName": "a",
"itemPrice": 10,
"shopName": "a-Shop"
}
},
{
"Item": {
"itemName": "b",
"itemPrice": 20,
"shopName": "b-Shop"
}
}
]
}
Item
を配列で取得できるので、今回は例として配列分のショップ名(shopName)
とアイテム名(itemName)
を取得して、Excelに出力したいと思います。
処理ロジック
ロジックとしましては以下のような感じで設定したいと思います。
- 楽天市場商品検索APIを「Webサービスを呼び出す」で実行
- 楽天市場商品検索APIの実行結果をPADの「変数」に変換
- Excelを新規ファイルで起動
- ヘッダーを書き込み(ショップ名、アイテム名)
- Excelの行用の変数「
Row
」を定義(2行目から書き込みたいので、初期値は2としました) - レスポンスのItemsを「ForEach」で1件ずつ処理
-
shopName
とitemName
を書き込み - 変数「
Row
」をプラス1 - 終わり
設定
全体の設定としては、こんな感じになりました。
![]() |
---|
設定として分かりにくそうなところだけ個別にキャプチャをはります。
Webサービスの呼び出し
URLやメソッド、コンテンツタイプなどの設定ができます。
(楽天APIでは不要でしたが、ヘッダーに認証トークンを含めたい場合は、カスタムヘッダーに記述すれば大丈夫です)
![]() |
---|
APIの実行結果のステータスについては%StatusCode%
に入って、レスポンスデータは%WebServiseResponse%
という変数に入っています。
前提として、PADでは%変数名%
のように%
で囲むと変数として扱われます。
Excelに書き込み
![]() |
---|
%ExcelInstance%
という変数にExcelインスタンスを起動している(サブフローの3)ので、それを指定しています。
%Items%
の一要素が%CurrentItem%
の変数に割り当てられています(サブフローの7)。
そして%Item%
という変数名の中に%shopName%
が入っているので、それを指定します(楽天市場商品検索APIの出力形式を参照してください)。
実行結果
![]() |
---|
簡単ですね(個人的にはプログラムでやりたくなります)。