公開日

Power Automate for desktopではじめて変数に出会った人も多いのではないでしょうか。変数と聞くと難しそう、よく分からない…と思われるかもしれませんが、使っていくうちに感覚がつかめてきます。
これから何回かに分けて、変数について紹介していきます。まずは【第1回】使ってみよう!

変数とは?

名前を付けた箱のようなものです。数学の x や y で行う、x = 1 というように値を入れて保存しておけるもの。変わる数 という名前からも分かる通り、中の値が変えられるものです。値を保存しておけるので、別の場所でその値を使うことができます。

PADでは % を使って変数を表します。
%Name%のように、%で前後を囲んだものが変数です。この場合Nameが変数名。

変数名の命名ルール

使える: %Hensu%、%HENSU%、%Hen_Su%、%変数%
使えない: %Hen Su%、%1Hensu%、%2変数%

  • アルファベット大文字小文字が使える(ただし%Hensu%と%HENSU%は同じとみなされる)
  • 記号はアンダースコア( _ )が使える、スペースはダメ
  • 頭に数字は入れられない、全角数字でもダメ
  • 日本語も使える (2023年5月のアップデートから)

どうやって作る?・・・アクションから生成

では命名ルールとか小難しいことはいったん置いておいて、とにかく作ってみましょう。
現在の日時を取得するアクションを配置します。変数については生成された変数に表示されています。

アクション設定ウィンドウの下部に生成された変数がある

これで変数 CurrentDateTime ができました。画面右側にある変数ペイン(下図オレンジ枠線部分)のフロー変数に追加されます。この時点ではまだ変数に値は入っていません。
変数ペインが開いていない場合は、右端にあるアイコンのうち{x}変数をクリックして開いてください。

フローを実行する(▶)と現在の日時が取得され、変数に値が入ります。このように変数ペインで変数にどんな値が入るか確認することができます
変数に入った値を確認するこの方法は覚えておきましょう。

変数名の右側に値が表示される

どうやって使う?・・・{x}から選択

次にメッセージを表示アクションを配置します。ポップアップでメッセージウィンドウを出し、さきほど取得した現在の日時を表示してみます。
変数の選択 {x}から選択すると、%CurrentDateTime%と入ります。変数は手入力することもできます。

変数を入れたい位置にカーソルを合わせる。変数の選択をクリック。候補から変数を選択する。
表示するメッセージに変数を含める
カーソル位置に変数名が入る
%変数名%が追加される

フローを実行するとメッセージのポップアップが出て、現在の日時が表示されます。これで別のアクションで変数を使うことができました。

ポップアップに変数の値が表示される
ポップアップのメッセージに変数の値が表示される

フローは上から順に実行されるため、アクションを並べる順番が大事です。
変数を使うときにちゃんと想定した値が入っているか、メッセージを表示アクションや変数ペインで確認するようにしましょう。
ちなみに、メッセージを表示アクションでも変数が生成されるので、変数ペインに変数が増えています。

※ 変数ペインのフロー変数一覧では、変数名はアルファベット順、その下に日本語が並びます。

生成された変数名を変えてみる

アクションで生成される変数は自動で名前が付きますが、変更することもできます。
今度はExcelの起動アクションを入れてみましょう。ExcelInstanceという変数が生成されます。
複数のエクセルを扱うことも多いですよね。もうひとつエクセルの起動を入れてみると、ExcelInstance2になりました。
同じアクションを追加すると、変数の末尾に数字がつき、それぞれ区別できるよう変数が作られます。

ExcelInstance
ひとつめのExcelの起動
ExcelInstance2
ふたつめのExcelの起動

アクション作成時に変更する

別のエクセルだと分かるとはいえ、どちらがどのエクセルを指しているのか分かりにくいので、変数名を変更しましょう。
アクション作成時に変数名を変えるには、生成された変数の 変数名をクリック > もう一度クリックして編集モードに > 変更したらEnter
変数名前後の%は自動で付きますので、消してしまっても大丈夫です。

変数ペインから変更する

変数ペインから変更すると、既にいくつかのアクションで使用している変数名を一括で変更することができます
変数名の3点ボタン > 名前の変更
生成したアクションから変えても、他のアクションで使用している変数名は変更されないのでご注意ください。

変数ペインの変数名右にある三点ボタン、名前の変更

自分で変数を作ってみる

これまではアクションが生成する変数を見てきました。変数は自分でも作ることができますので、以下の変数を作ってみましょう。
変数の設定アクションを使用し、変数名と値を入力します。
%Amount% = 1000(半角数字)
%Qty% = 5(全角数字)

変数の設定アクションで、変数名Amount、値1000を半角数字で入力

自分で作る変数をどういう時に使うかというと、例えばフォルダーパスやファイルパス、メールアドレスなど2カ所以上で使う値や、消費税やURLなど変更する可能性がある値です。変数に入れておくことで、変数の値だけ変更すればよいためメンテナンスや変更が楽になります。

変数には型がある

変数には型(かた)というものがあり、例えば、文字列型、数値型、日付型などいろいろあります。
今回使用したアクションで作成された変数の型をいくつか見てみましょう。

数値、テキスト値

さきほど自分の変数を作成し、半角数字、全角数字をそれぞれ入れてみました。
フロー実行後、変数ペインでそれぞれの変数・値の部分をダブルクリックで開いて、型を確認してみましょう。
変数名の右側に型が表示されます。

変数ペインで値をダブルクリック、Amountは数値、Qtyはテキスト値となる

数値として認識されたのは半角数字だけです。全角数字はテキスト値。保存後のアクションを見ても''が付いているとテキスト値として認識されていることが分かります。
セルの指定や計算に使うためには数値である必要がありますので、数値は半角で入力してください
型は変数の選択{x}でも表示されますので、使うときに確認することもできます。

Qtyは全角数字で入力したので5がシングルクォーテーションで囲まれる
テキスト値は'' (シングルクォーテーション)で囲まれる
変数の選択で出てくる候補は、変数名の右側に型が表示されている
変数の選択{x}を開くと実は型も表示されている

Datetime

次に最初に作成したCurrentDateTimeを確認してみましょう。
Datetimeという、日付と時間を持つ型です。

Datetimeは日付の計算をすることができます。たとえば、今日から3日後の日付、1月前の日付、今月末の日付。日付だけでなく年・月・日などをバラバラに使うことも可能です。

Datetimeからテキスト値へ変換できる

よくファイル名に作成日を付けたいことがあります。このCurrentDateTimeの値だと長いしスラッシュも含まれていてこのままだと使えません。
そんなときはdatetimeをテキストに変換アクションで、任意の形式を指定した上でテキストに変換し%FormattedDateTime%を作ります。これでファイル名に含めることができます。

datetimeをテキストに変換アクションで、形式yyyyMMddを使ってCurrentDateTimeを変換しFormattedDateTimeに保存した。その後、変数の設定アクションで、変数FileNameに、値Sample_FormattedDateTime.xlsxを割り当てた。

Excelインスタンス

次にExcelの起動で作成されたTemplateExcel(ExcelInstance2から名前を変更しました)を見てみます。
Excelインスタンスだそうです。。名前も値もよく分かりませんが、インスタンスはどのエクセルを操作するのかを判別するものです。

先ほど名前を変更してみましたが、複数のエクセルを起動したとき、どちらのエクセルを操作しているか分からなくならないよう、名前をきちんと付けておくことが重要です。分からなくなったら、変数を生成したExcelの起動アクションを見て、どのエクセルを指しているか確認してください。

型は少し難しいですが、自分がよく使うものから特徴を押さえ慣れていきましょう!

変数を計算で使ってみる

型というものがあるんだなぁと知ってもらったところで、数値の入った変数を使って計算してみましょう。
計算はエクセルと同様、+ - * / で四則演算ができます。
変数の設定アクションで、%Amount%に数量をかけるにはこのように%で囲んだ中に演算を記入します。
%Total% = %Amount * 5%

変数同士の計算はこのように記入します。(%Qty%の値は半角数字で書き換えておきます。)
%Total2% = %Amount * Qty%
%%の内側でも変数の選択{x}からだと%が付きますが、%%はひと組だけであるところがポイントです。
フローを実行すると、変数にはちゃんと計算した結果が入りました。

変数を使わない計算

変数を使わないけれど計算をしたいという場合も%%の内側なら可能です。変数の設定アクションで変数を作ってみます。
%Calc% = %300 * 5%
%Calc2% = 300 * 5
フローを実行して、変数の値を確認してみてください。
%Calc%は計算結果1500が入りますが、%Calc2%は300*5のままです。%で囲まないと、テキスト値とみなされ計算されません。

値・変数を計算式としておくことで、金額と数量のように、後で金額だけもしくは数量だけ値を変えることも楽になります。
フローを作るときは、値が変わりそうなところを想定して予め変えやすく作っておくのも楽するコツです。


今回は入門編として、変数をとにかく使ってみました。変数のイメージは掴めてきましたか?
案外色々ありましたね。変数【第2回】ではデータテーブルを紹介します。

【Power Automate for desktop】変数 第2回 データテーブル

公開日 変数シリーズ【第2回】データテーブルです。データテーブルとはデータ型のひとつで、表形式のデータをまるごとひとつの変数に保存できます。ひとつの変数の中に複…