PADでプログラミング言語「Power Fx」が利用可能に!初心者向けに使い方を解説【Power Automate Desktop】

Power Automate Desktop

2024年3月14日、Microsoft社はプログラミング言語「Power Fx」をPower Automate Desktop(PAD)に導入することを発表しました。ユーザーは、PADでフローを作成する際に、プログラミング言語「Power Fx」を利用できるようになりました。

今回は、PADでPower Fxを使う方法について、初心者の方にも分かるよう解説していきたいと思います。

「Power Fx」とは?

「Power Fx」とは、「Microsoft Excel」の数式構文に似ているプログラミング言語で、Microsoft社が提供するアプリケーション内で使うことができます。

人が使いやすいテキストで表現されており、「ローコード言語」に分類されます。PAD自体はプログラミングが一切いらない「ノーコードツール」と呼ばれますが、PAD内でシンプルなプログラムを使えるということで、ローコード言語に分類されています。

まとめ:Power Fxとは?

Excelの数式に似たプログラミング言語で、Microsoftが提供するアプリケーション内で使うことができるもの。

参考:Microsoft Power Fx の概要

PADでPower Fxを使う方法

では、ここからはPADでPower Fxを使う方法について解説します。

フローの新規作成 ※注意点あり!

PADでPower Fxを使うには、PADを起動して新規フローを作成する際に、「Power Fxが有効」というタブをオンにする必要があります。

「Power Fxが有効」タブをオンにしてフローを新規作成すると、編集画面の上部に「このフローでPower Fx(プレビュー)を使用できます。」と表示されます。

Power Fxを使ってみる

PADのフローに、「メッセージを表示」を追加します。

追加するアクション

メッセージを表示

左側のアクション一覧から「メッセージを表示」をドラッグアンドドロップで真ん中の白いエリアに配置します。

追加すると、以下のダイアログが表示されます。「メッセージボックスのタイトル」には「今日の日付」と入力します。そして、「表示するメッセージ」にカーソルを当て、右上に出ている「fx」を押します。

「日付と時刻」→「Today」の順に選択します。

すると、「=Today()」という関数が入力されました。

フローの実行

作成したフローは、以下のようになっているかと思います。これを実際に動かしてみます。

画面上部にある実行ボタンを押して実行します。

実行すると、今日の日付がメッセージボックスで表示されます。

※時刻が0:00:00となっていますが、Today関数では時刻を返さないため0が返ります。時刻まで取得したい場合は、Now関数を使います。

関数を変更する場合

設定した関数を変更する場合は、対象のアクションを開いて一度関数を削除します。

そして、新しくセットしたい関数を設定します。

直書きでも補完機能があるので便利!

先ほどは、「Fx」というアイコンを押して、一覧から関数を選択しましたが、直接関数を書くこともできます。

また、Power Fxにはオートコンプリート(自動補完/インテリセンス)機能があり、途中まで書くと残りをどう書くか誘導してくれるので便利です。

Now関数に修正して、フローを再度実行すると、今度は時刻まで表示されるようになりました。

Power Fxの利用例

Power Fxの利用例をいくつか紹介します。

文字列の抽出

文字列の抽出(切り出し)を、関数を使って行うことができるようになりました。

このフローを実行すると、Left関数が実行され、指定した位置までを抽出した文字列が表示されます。

従来のPADでは、これと同じことを実現するには「サブテキストの取得」アクションが必要でした。

CountIf関数で条件に当てはまる要素を取り出す

CountIf関数は、Excelでもおなじみの、対象のデータから条件に一致する要素を取り出す関数です。

たとえば、「りんご,ごりら,らっぱ」という3つの要素が格納されているリスト変数NewVarから、「ごりら」の数をカウントします。

CountIfの引数には、第一引数に検索対象とするデータ、第二引数に検索値をセットします。Valueというのは、リスト変数NewVarのそれぞれの要素がkey-valueの組み合わせで格納されており、キーとなるValueを指定することで値が取り出される仕組みです。

このフローを実行すると、CountIf関数の結果がメッセージボックスに表示されます。

データテーブルに対してフィルタリングを行う

データテーブル(二次元配列)に対して、関数を使ってフィルタリングを行うことも可能です。

「変数の設定」にて、Filter関数でフィルタリングしたデータテーブルを別の変数に格納します。

第一引数には対象となるデータテーブル、第二引数には条件を指定します。今回は、Priceが500より大きい場合なので、 ‘Price’ > 500 となります。

参考:Formula reference – desktop flows

Power Fx利用時の注意点

PADでPower Fxを利用する際の注意点についてまとめます。

エラーメッセージは英語表記

Power Fxの関数に関するエラーメッセージは、英語で表示されます。

従来のPower Automate Desktopも、最初の頃は日本語化されていない箇所がけっこうあったので、これはアップデートを繰り返すうちに日本語化されていくんじゃないかと思っています。

一度Power Fx版でフローを作ったら、従来版に変更はできない

一度Power Fx版でフローを作ったあとに、途中で従来版に変更することはできません。逆に、従来版から途中でPower Fx版にすることもできません。

チームで作業する場合には、あらかじめどちらで作成するか認識を合わせておくと安心です。また、Power Fxは登場したばかりの機能であり、現在プレビュー版(ベータ版)なので、もし客先に納品するような場合には従来版を使ったほうが納品後のメンテナンス性を考えると良いかと思います。

まとめ

今回は、PADでPower Fxを使う方法について解説しました。

Power Fxは、Microsoft社が提供するアプリケーション内で使うことができますので、関数の使い方をざっくりでもおさえておくことで、他のMicrosoftのアプリを使う際にも生かせると思います。

従来のPADでは、用意されているアクションだけでは実現が難しいorできないような処理もありましたので、Power Fxを活用すればこれまでできなかったことも実現できるようになるのではないかと思います。特に、データテーブルに関する処理は色々と面倒なことが多かったので、Power Fxを使って色々試してみたいです。

当ブログでは、Power Automate、Power Automate Desktopに関する記事を他にも投稿しています。もし、「このようなことが知りたい」「こんなフローの作り方が知りたい」等ございましたら、問い合わせやコメントからお気軽にご連絡ください。

chaso

文系出身、数字が苦手な平凡主婦。塾講師、大手企業SE、不動産事務、Webライター、QAエンジニアを経て現在RPAエンジニアとして働いています。機械音痴だけど効率化や自動化をこよなく愛しています!お仕事の依頼・ご相談は問い合わせよりお願いいたします♪

chasoをフォローする

コメント

タイトルとURLをコピーしました