1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Power Automate 開発チートシート

Last updated at Posted at 2025-04-27

実務でPower Automate開発を2年ほど経験し、教える機会も増えてきたのでまとてみた。
初級者から中級者へレベルアップする過程の方向け。

テンプレート

Power Automateで開発するときは必ずと言っていいほど、以下のTry,Catch,Finallyのテンプレートを利用する。これは他のプログラム言語にも共通する考え方で、Tryにはメインの処理、Catchには失敗したときの処理、Finallyには最終的な処理を入れる。

Try, Catch, and Finally Template | Power Automate
https://make.powerautomate.com/galleries/public/templates/e8e028c6df7b4eb786abdf510e4f1da3/try%E3%80%81catch%E3%80%81finally-%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88

変数

型の種類について

初期値 備考
Boolean false 「true」「false」
Integer 0 整数
Float 0 小数
String 文字列
Object JSON形式の値 {"name": "xxx","age": 20}
Array [] 配列 ["xxx","yyy","zzz"] [1,2,3]

初期値かどうか判定する方法

変数名 初期値 判定式
Boolean bln false equal(variable('bln'), 'false')
Integer int 0 equal(variable('int'), 0)
Float flt 0 equal(variable('flt'), 0)
String str equal(variable('str'), '')
Object obj equal(variable('obj'), json(''))
Array arr [] equal(variable('arr'), json('[]'))

※初期値にしたいときは「null」を代入すればOK。
※変数は自己参照ができないので注意。

メモ:すごくよく使う変数

フローの名前を変数に代入

  • アクション名:変数を初期化する
  • 名前:ツール名
  • 種類:文字列
  • 値:workflow()?['tags/flowDisplayName']

メモ:定数を1つのアクションで宣言する

定数の概念はなく「変数を初期化する」で1アクションごとに宣言するが、まとめて1つのアクションで宣言することで、アクション消費数を節約することができる

1.「変数を初期化する」アクションを追加して、名前、種類、値を以下の通り設定。

  • 名前 :定数
  • 種類 :Object
  • 値 :{ "定数1":"string", "定数2":"string", "定数3":"string" }

2.「JSONの解析」アクションを追加して、コンテンツとスキーマを以下の通り設定。

  • コンテンツ :variable('定数')
  • スキーマ :
スキーマ
{
    "type": "object",
    "properties": {
        "定数1": {
            "type": "string"
        },
        "定数2": {
            "type": "string"
        },
        "定数3": {
            "type": "string"
        }
    }
}

Power Automate のオブジェクト変数はこうやって使うべし #JSON - Qiita
https://qiita.com/Rinatamu/items/cf4172bda3778397be9e

日時

Power Automateでは日時は文字列として扱われる。
UTCが基準になるため、UTCから日本時刻に変換する必要がある。

日時変換

日本時間で現在時刻を取得する
convertFromUtc(utcNow(), 'Tokyo Standard Time', 'yyyy-MM-dd hh:mm:ss')

日本時間をUTC時刻に変換する
convertToUtc('2025-04-28 02:25:41', 'Tokyo Standard Time', 'yyyy-MM-dd hh:mm:ss')

表示形式を変換する
formatDateTime('2025-04-28 02:25:41', 'yyyy/M/d')

日時の表示形式

上記のサンプルではyyyy-MM-dd hh:mm:ss を指定しているが、省略した場合は2025-04-28T11:28:29.6260840の形式で値が戻ってくる。
その他の指定方法は以下サイトが良くまとめてくださってるので参考。

Power Automate の 日付書式を調べてみた (夏の自由研究) - MoreBeerMorePower
https://mofumofupower.hatenablog.com/entry/format_Specifiers

Excelの日時と連携

Excelテーブルから日時を読み込む、あるいは書き込む場合には、DateTime形式に「ISO 8601」を指定する。
image.png

改行コード

改行コードの種類は、LF(ラインフィード)、CR(キャリッジリターン)、それを合わせたCRLFの3つからなる。Power Automateで取得したデータはこの改行コードがエスケープ表記だったり16進数表記だったりして非常に混乱するので、以下の表にまとめた。

コード表記 エスケープ表記 16進数表記 10進数表記 Power Automate 関数 Excel 関数 VBA
LF \n 0A 10 decodeUriComponent('%0A') CHAR(10) vbLf
CR \r 0D 13 decodeUriComponent('%0D') CHAR(13) vbCr
CRLF \r\n 0D 0A 13 10 decodeUriComponent('%0D%0A') CHAR(13)&CHAR(10) vbCrLf

改行コードを消したい時は以下を参考

Power Automate で 複数行テキストを操作する #PowerAutomate - Qiita
https://qiita.com/h-nagao/items/af18eb357bc7c8bec3a2

フィルタークエリ

フィルタークエリはExcelやSharePointリストから複数行をまとめて取得する際に、データを絞り込むためのもの。

記述サンプル

Column1 eq 'xxx'
Column1 ne 'yyy'
Column1 gt 1000
Column1 ge 1000
Column1 lt '2025-01-01'
Column1 le '2025-01-01'
Column1 eq 'xxx' or Column1 eq 'yyy'
Column1 ne 'xxx' and Column1 ne 'yyy'
not (Column1 eq 'xxx')

演算子(参考)

演算子 元の意味 記号 意味
eq equal = 等しい
ne not equal <> 等しくない
gt greater than > より大きい
ge greater than and equal >= 以上
lt less than < より小さい
le less than and equal <= 以下
and 論理和
or 論理積
not 論理否定

配列

配列のn番目の要素を取得する

変数「アレイ」には以下の要素が入っているとする。
この配列から1番目の要素を取得したい場合、variable('アレイ')[0]と指定すると、20という数字が取得できる。

variable('アレイ')
[
    20,
    25,
    23
]

そこから応用して「複数の項目の取得」で以下の配列を取得したとする。
この配列から1番目の要素のageを取得したい場合、outputs('複数の項目の取得')?['body/value'][0]?['age']を指定すると、20という数値が取得できる。

outputs('複数の項目の取得')
"body": {
    "value": [
        {
            "id": 1,
            "age": 20
        },
        {
            "id": 2,
            "age": 25
        },
        {
            "id": 3,
            "age": 23
        }
    ]
}

制限(重要なとこ)

Power Automateには知らないとリリース後に痛い目を見る制限が結構ある。

Excelの取得できる行数は256行

規定で256行までしか取得されない。回避方法は以下を参考。

Power Automateで256行より大きいExcelファイルを扱う方法! | てじらぼ
https://www.teijitaisya.com/powerautomate-row/

SharePointの取得できる行数は100行

規定で100行までしか取得されない。「上から順に取得」に5000を指定すればMAX5000行までは取得可能だが、それ以上は5000行ずつループが必要。回避方法は以下を参考。
(そもそもアクション数の上限が10000なので、5000件ループするような設計はよろしくない…フィルタークエリを使って絞り込むことが大事)

Power AutomateでSharePointリストの5000件以上のデータを処理する方法 | PPログ
https://powerplatformnikki.com/powerautomategetsplist5000/

実行できるアクション数は1日10000回まで

アクション数とは編集画面上の1つ1つの箱の単位を指す。
契約してるM365のプランにもよるが、実行できるアクション数は1ユーザーあたり1日10000回まで。これを超過すると速度制限が起きる。
フローの実行頻度やループ回数によって、アクション数が10000回を容易に超える可能性もあるので注意して設計する。
https://learn.microsoft.com/ja-jp/power-platform/admin/api-request-limits-allocations

その他制限

他にも「変数アクションは1フローあたり256個まで」「ネストは8ネストまで」など色々制限があるので、公式リファレンスに目を通しておく。
https://learn.microsoft.com/ja-jp/power-automate/limits-and-config

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?