PowerApssのIf文

会社にMicrosoft365が導入されてまもなく2年。ぼちぼち使っていたが、昨年、iPadも個人配布されたので、もっと活用して業務の能率・効率を上げようと奮闘しております。Microsoft365の機能で充分色々なことができるのですが、業務に合わせたカスタマイズをしようと思うとPowerApps、PowerAutomateを使いたいところ。

PowerApps、PowerAutomateともノーコード・ノーロード開発、言わばプログラミングの知識がなくともアプリやRPAが導入できるということですが、使ってみると逆に使いにくい部分があるように感じます。Basic、C、Perl、Pythonなどなど色々な言語がありますが、言語としてきっちり定義がされていたのですが、まだPowerAppsは言語の要素がありますが、PowerAutomateのコネクタ・コネクションは定義がぼやっとしていて分かりにくいと感じています。

さて、本題。ではPowerAppsは分かりやすいかというと、構文が慣れ親しんだもの(VBA)と異なるので、隘路にはまり込んでおります。例えば、題名通りIf分。最もよく使うものですが、今まで通りの感覚で使っているとドツボにハマります。例えばVBAであれば

If 条件式 Then
    条件式が成立したときに実行する内容(A)
End If

その後実行する内容(B)・・・

上記のように記載すれば、If文で条件式が成立した際にAが実行され、その後は条件によらずBが実行されるとなります。なので、Aに終了処理を書けばプログラムを終えることができていました。

ところが、PowerAppsでは、If文の書き方がそもそも異なります。

If (条件式,条件式が成立したときに実行する内容(A)); //この1文でIf文は終わり

その後実行する内容(B)・・・

と記載すると、条件式が成立しない場合はBは実行されないのです。If文を入れるアプリが止まるので何でだ?と悩んだ結果が、上記でした。Microsoftのページには

If 関数は、true の結果が見つかるまで、1 つ以上の条件をテストします。 そのような結果が見つかった場合は、対応する値が返されます。 そのような結果が見つからない場合は、既定値が返されます。

https://learn.microsoft.com/ja-jp/power-platform/power-fx/reference/function-if

とあります。最後の「既定値が返されます」にしっかり定義しないといけないということでしょうか。あとややこしいのは、条件を複数用いるとき。

If 条件式A Then
   条件式Aが成立した際に実行する内容(B)
Elseif 条件式C Then
   条件式Cが成立した際に実行する内容(D)
End If

---

If (条件式A,実行内容B,条件式C,実行内容D)

上段がVBA、下段がPowerApps。ElseIfの記載が不要になった分、”,”にて条件を並べてますが、条件式なのか実行内容を示しているのかが省略によって余計に分かりにくいと個人的には思ってます。

※個人の調査と個人的見解が含まれていますので、誤り等あればご指摘いただければ幸いです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.