新たな変数を定義、または既存の変数の更新を行います。
目次
Microsoft Docs
変数のアクションに関する参考情報 変数 | Microsoft Docs - Power Automate - docs.microsoft.com |
業務での利用頻度
★★★★★ ほぼ毎回使用します
オススメ度
★★★★★ 変数は奥が深いですが、変数の設定を極めれば、PADの幅が非常に広がります!
用途・目的
- 消費税率など将来的に変わる可能性がある値の定義
- 変数の値を変えれば修正漏れがでない
- 毎回同じサブフローに定型値を設定することで、チームでの開発効率向上を図ることも可能です(ただし同じ意味の変数を複数人で定義しないようにルールを決めることが大切です)
- 数値などの計算
- 出力時に直接計算させることも可能ですが、値が思ったのと違う!というのを防ぐために、変数化すると便利です
- 思った通りの動きになるかの確認
- フローを開発する際の動作チェックとして使用する
使い方
変数 > 変数の設定 アクションを配置し、内容を設定してください。
変数を使用した場合(%の位置に注意)
設定項目
設定 | 変数名を設定 | 日本語と_以外の記号、予約語は使用できません 無効な名称 |
宛先 | 変数の値を設定 | 文字列 または 変数、式を設定 変数の型は自動判定されます |
エラー発生時の処理(例外処理設定)
設定出来ません。
発生する可能性のあるエラー
※ ここに記載しているエラーが全てではありません ※
ランタイムエラー | インデックス ‘x’ は範囲外です。 | List型の変数に対し、存在しないインデックスを参照している 例)データが3件しかないのに[3]を指定している([0][1][2]しかアクセスできない) ListやDatatableを使用している場合は要注意! |
ランタイムエラー | 変数 ‘変数名’ にプロパティ ‘x’ がありません。 | 存在しないプロパティにアクセスしようとしている カスタムオブジェクトを使用している場合や変数を使いまわしているときに注意! |
ランタイムエラー | 0 で割る演算は許可されません | 0で割ろうとしている Excelから値を読み取って、ループ内で計算しようとしている場合は注意 |
様々な値の設定方法
型の指定
変数の設定アクションでは、特定の記法を行うことで、データ型を明示的に指定することが出来ます。
※ 上級者向けの内容を含みます。ほとんどのケースでは、太字の部分のみで対処可能です。 ※
テキスト型 | あいうえお %’0001’% | 文字列が含めれるとテキスト型が設定されます 数値やスペースなどは%”%で文字を囲むとテキスト型になります |
数値型 | 123 3.14 | 値が数値のみで構成されていると数値型として判定されます 先頭の0は除去されます(0001→1) |
Datetime型 | %D’2021/01/01’% %D’2021/01/01 0:00:00’% | 時刻を省略すると0:00:00が自動で設定されます |
ブール型 | %True% %False% %1=1% | 真偽 %True% %False% |
List型 | %[‘値1’, ‘値2’, ‘値3’]% %[‘文字列’, 数値, D’2021/01/01′]% | 新しいリストの作成、項目をリストに追加アクションと同じです %List[0]% |
Datatable型に列名を定義 | %{ ^[‘項目名1’, ‘項目名2’, ‘項目名3’] }% %{ ^[ColName1, ColName2, ColName3] }% | 同一列名は設定できません |
Datatable型に値を追加 | %Datatable + {[‘値1’, ‘値2’, ‘値3’]}% %Datatable + {[Value1, Value2, Value3]}% | 事前に列名を設定しなかった場合、列名はColumnXが設定されます %Datatable[0][0]% %Datatable[0][‘列名’] |
カスタムオブジェクト型 | %{ ‘キー’: ‘値’ }% %{ ‘キー1’: ‘値1’, ‘キー2’: ‘値2’ }% %{ ‘List’: [‘値1’, ‘値2’, ‘値3’] }% %{ ‘Datatable’: [‘値1’, ‘値2’, ‘値3’] }% | プロパティのように利用することが出来ます %CustomObject[‘キー’]% %CustomObject.Key% (英数字のみの場合) |
計算式
計算式は数学と同じように使用できます。
計算順序も * や / が + 、- より先に計算されます。
足し算(加算) | + 読み方:プラス | %1 + 2% %Num + 1.25% %Num1 + Num2% |
引き算(減算) | – 読み方:マイナス | %2 – 1% %Num – 1.25% %Num1 – Num2% |
掛け算(乗算) | * 読み方:アスタリスク | %3 * 2% %Num * 1.25% %Num1 * Num2% |
割り算(除算) | / 読み方:スラッシュ | %10 / 2% %Num / 1.25% %Num1 * Num2% |
余り(余剰) | mod 読み方:モッド | %3 mod 2% %Num mod 1.25% %Num1 mod Num2% |
計算の優先順位 | %( 1 + 1 ) * 2% |
利用サンプル
Copyボタンを押してから、PADに貼り付けてください
基本的な使い方
# 文字の設定
SET String TO $'''文字列'''
# 文字の結合
SET String TO String + 'の結合'
/# 変数を繰り返し使う
メリット:無駄な変数を増やさない
デメリット:複数の型を設定した場合(テキストと数値など)は、変数のプロパティを一覧から設定できない#/
SET String TO String + 'はこんな形です'
# 数値を文字として定義する場合は%''%内に記述する
SET String TO $'''%'0001'%'''
# 数値の計算
SET Calc TO 1.25 + 0.75 - 0.1
# 文字と数字を足した場合
SET StringAndNumeric TO 'あさひ' + 123
# 日時の定義
SET Datetime TO D'2021/07/01 10:30:00'
リストを定義
# リストの定義
SET List1 TO ['値1', '値2', '値3']
# リストの定義(複数の型)
SET List2 TO [1, 2, 3, D'2021/01/01 10:00:00', D'2021/02/01 09:00:00', D'2021/03/01 21:00:00']
# リストの中にリストを作る(二次元配列)
SET List3 TO [['値1-1', '値1-2', '値1-3'], ['値2-1', '値2-2', '値2-3'], ['値3-1', '値3-2', '値3-3']]
Datatableを定義
# 列名の定義
SET Datatable1 TO { ^['列1', '列2', '列3'] }
# 値の追加
SET Datatable1 TO Datatable1 + {['値1', '値2', '値3'] }
SET Datatable1 TO Datatable1 + {['値4', '値5', '値6'] }
/# 複数値の追加
※列名定義無しの場合#/
SET Datatable2 TO {['値1', '値2', '値3'], ['値4', '値5', '値6'], ['値7', '値8', '値9'] }
/# 複数値の追加
※列名定義ありの場合#/
/# 複数値の追加
※列名定義ありの場合#/
SET Datatable3 TO { ^['列1', '列2', '列3'] }
SET Datatable3 TO Datatable3 + {['値1', '値2', '値3'] } + {['値4', '値5', '値6'] } + {['値7', '値8', '値9'] }
/# 列名定義ありの場合、下記は出来ないので注意!
#/
SET Datatable4 TO { ^['列1', '列2', '列3'] }
# 変数の組み合わせ
SET Datatable5 TO { ^['列1', '列2', '列3'] }
LOOP LoopIndex FROM 1 TO 10 STEP 3
SET Datatable5 TO Datatable5 + {['値' + LoopIndex, '値' + (LoopIndex + 1), '値' + (LoopIndex + 2)] }
END
注意事項
- 変数名は初期値を使用せず、誰が見てもわかるものを設定しましょう
- 合計金額
ふさわしくない例%Value%
ふさわしい例%GokeiKingaku% や %TotalAmount%
- 合計金額
- 「100%ジュース」のように「%」を設定したい場合は「100%%ジュース」のように、%を2つ続けて設定します。
- ファイルパスを宛先に設定しても自動で型が判定されません。
「ファイル パス部分の取得」アクションを使用してください。 - 宛先に「0001」を設定すると「1」(数値型)に置き換わります。
0を含みたい場合は、%’0001’%と設定してください。(テキスト型に変わります) - 小数点を含んだ数値はトータル15桁まで処理され、それ以降は四捨五入されます。
1234567890.12345(整数部10桁、小数部5桁) → 1234567890.12345(そのまま)
12345.0123456789(整数部5桁、小数部10桁) → 12345.0123456789(そのまま)
1234567890.123451(整数部10桁、小数部6桁) → 1234567890.12345(15桁で四捨五入)
12345.01234567895(整数部5桁、小数部11桁) → 12345.012345679(15桁で四捨五入) - 整数のみで構成された数値型は16桁目以降は四捨五入されます
1234567890123456(16桁) → 1234567890123460(先頭15桁目以降は四捨五入)
12345678901234567(17桁) → 12345678901234600(先頭15桁目以降は四捨五入)