シンプルなチュートリアルを体験

前回、Windowsの操作を自動化する「Power Automate」の使い方を学ぶ方法として、まず最初に簡単なサンプルを作る方法を取り上げた。チュートリアル的なサンプルはいくつかあるが、最初はMicrosoftが提供している次のドキュメントがよいだろうと判断して取り上げた。

上記のチュートリアルは「テキストデータとして日付の入力を受け、これを一旦datetime形式のオブジェクトに変換し、さらにここから特定のフォーマットへ変換して表示する」といったアプリケーションを作ってみる、という内容になっていた。前回はこのチュートリアルに従って、サンプルアプリケーションを作ってみた。

  • 前回作成したシンプルなチュートリアル

    前回作成したシンプルなチュートリアル

前回は何の説明もなく変数を使ったが、どこからその変数が出てきたのか、プログラミングの経験がない人にはわからなかったと思う。そこで、今回は変数について説明していく。

「生成された変数」に注目

前回は、最初に入力ダイアログを作成した。次のようなダイアログに情報がまとまっている。

  • 入力ダイアログ

    入力ダイアログ

上記のスクリーンショットのように、「生成された変数」という部分に注目だ。この部分は畳み込まれているので、広げると次のようになる。

  • 入力ダイアログ - 生成された変数の詳細

    入力ダイアログ - 生成された変数の詳細

「UserInputーユーザーによって入力されたテキスト、または規定のテキスト」という説明が掲載されている。これは、入力ダイアログによって入力を受け付けたデータが、「UserInput」という変数に保持されていることを意味している。

「UserInput」にフォーカスを移すと、次のようになる。

  • 入力ダイアログ - 生成された変数の詳細 - 変数にフォーカス

    入力ダイアログ - 生成された変数の詳細 - 変数にフォーカス

「UserInput」と表示されていた部分が入力フィールドのようなUIに変わり、そこに「%UserInput%」という文字列が表示されていることがわかるだろう。

このダイアログの表示はよく理解しておこう。入力ダイアログを経由して入力されたデータが「UserInput」という変数で保持されており、その変数へのアクセスは「%UserInput%」という表記で行う、ということだ。プログラミングの経験があればこの辺りは説明がなくても理解できると思うが、プログラミングの経験がないと意味がわからなかったのではないだろうか。こんな仕組みになっているのだ。

なお、この変数の名前は変更することができる。「UserInput」にフォーカスを当ててUIを入力フィールドに変更したら、そこで使いたい名前へ変えることができる。しかし、変数名を変えた場合はそれに続くすべてのフローおいても変数名を変更する必要があるので、最初はデフォルトで表示される変数名のまま使っておこう。

「生成された変数」を使う(その1)

データの入力が終わったあとは、入力されたデータをdatetimeへ変換した。その処理は次のようになっている。

  • 入力されたテキストデータをdatetimeへ変換 - 変換するテキスト - UserInput

    入力されたテキストデータをdatetimeへ変換 - 変換するテキスト - UserInput

先ほどの処理で入力されたテキストデータは「UserInput」という変数に格納されていることがわかった。そして、その変数へのアクセスは「%UserInput%」という表記になっていることも明らかになった。上記のスクリーンショットで「変換するテキスト」に「%UserInput%」という表記があるのはこのためだ。最初のダイアログで受け付けたテキストデータを変換したいので、変換元テキストとして「%UserInput%」が書いてある、というわけである。

では、この処理で変換されたデータはどうなるのかといえば、次のスクリーンショットのように「生成された変数」に「TextAsDateTime」という変数が書いてあることがわかる。つまり、この処理では「UserInput」という変数から新しく「TextAsDateTime」という変数が作られた、ということだ。

  • 入力されたテキストデータをdatetimeへ変換 - 生成された変数 - TextAsDateTime

    入力されたテキストデータをdatetimeへ変換 - 生成された変数 - TextAsDateTime

変数名は「UserInput」だが、入力するときは「%UserInput%」という表記になっている点にも注意しよう。変数へのアクセス方法はプログラミング言語ごとに異なっているのだが、Power Automateでは「%UserInput%」のように変数名の前後に「%」をつけるという記述になっている。

「生成された変数」を使う(その2)

その次の処理も先程の処理と同じだ。次のスクリーンショットを見てみよう。

  • 生成されたdatetimeをテキストに変換 - 変換するdatetime - 生成された変数

    生成されたdatetimeをテキストに変換 - 変換するdatetime - 生成された変数

その前の処理で生成された「TextAsDateTime」から「FormattedDateTime」が生成されていることがわかる。つまり、「%FormattedDateTime%」というのが最後に表示するメッセージに含めるべき変数名ということになるわけだ。

「生成された変数」を使う(その3)

そして最後に変換後の日付を表示する処理で、次のように「表示するメッセージ」に「%FormattedDateTime%」という表記が含まれていることがわかる。

  • メッセージを表示 - 生成された変数を表示

    メッセージを表示 - 生成された変数を表示

こんな感じで処理ごとに新しく変数が生成されており、その変数を経由して次の処理でデータにアクセスする、そんな仕組みになっていることがおわかりいただけたと思う。

変数の流れが間違っているとエラーになる

変数名でデータがつながっているということは、変数名を間違えると正しくアプリケーションが動作しなくなることを意味している。例えば、最初の処理である「入力ダイアログを表示」の部分で「生成された変数」のところの変数名を変更してみると、次のようなエラーが表示される。

  • 変数がつながっていないとエラーになる

    変数がつながっていないとエラーになる

上記のスクリーンショットでは、「入力ダイアログを表示」で保存される変数の名前を「UserInput」から「UserInputCHANGED」に変更した。このため、2つの目の処理である「テキストをdatetimeに変換」で使っている「%UserInput%」表記でアクセスできる対象がなくなってしまった。このため、上記のスクリーンショットのようなエラーが出たわけである。

操作としてはわかりやすい。「入力ダイアログを表示」を編集して保存すると、すぐに上記スクリーンショットのようにエラーになるからだ。エラーの原因がよくわからなければ「入力ダイアログを表示」のメニューから「元に戻す」を選択して戻せばよいだけなので、修正するのも簡単だ。

ローコードの感覚をつかむ

こんな感じで作業をしていくと、「ローコードプラットフォーム」と位置づけられているPower Automateの「ローコード」の塩梅が徐々にわかってくるのではないかと思う。抽象度の高い人気のプログラミング言語と比べるとかなり簡単にコーディングできるが、まったくプログラミングを知らない状態でスラスラを使い出せるようなものでもない感じだ。これがいわゆる「ローコード」ということになる。

「ローコード」においてもプログラミングの知識は必要であり、むしろ知っているほうが理解が容易であるのは間違いない。しかし、プログラミングのスキルがなくても見様見真似で操作できるようになるギリギリのラインにあるような雰囲気もわかってもらえたと思う。

Power Automateは諦めるには惜しい機能だ。プログラミングの経験がまったくないとしても、少しずつ触って徐々に使い方を身につけていこう。

参考