今更だけど、Power Appsのifの使い方を詳しく調べてみたのでその結果をメモ。
値を返すか、処理を行うか
Power Appsのifは、
- Excelのように値を返すif
- プログラムのように処理を行うif
の両方の機能を持っている。
値を返すif
例えば、ラベルのTextプロパティにこんな文を書けば、
スライダーが25のときに、「Result1」という文字列を返してくる。
これがExcelのような値を返すifの使い方。
処理を行うif
対して、例えばラベルのTextプロパティに変数strを入れて、
スライダーのOnChangeにこんな文を書けば、
スライダーの値が25に変わったときに、strに「Result1」が代入処理が行われラベルにResult1と表示される。
これが処理を行うif。
ちなみに上の書き方だと一旦スライダーが25になってしまうと、「Result1」が表示され続ける。
こんな感じで、Power AppsのIfは値を返すifと処理を行うifがある。
結果を返すIfはTextプロパティやFillプロパティなどの値を入れる場所で使用し、処理を行うIfはOnChangeやOnSelectなどのイベントが発生したときに呼び出されるプロパティ内で使用する。
Power Appsのifの仕様
下の記事でも書いたが、Power Appsのifの仕様は
どの条件もtrueではなく、どの一致も見つからない、および既定の結果を指定しない場合は空白を返す
となっている。
つまり、
IsBlank(if(false,false))
みたいな式はtrueを返す。やらないと思うけれどw
予期せぬ挙動を防ぐため、ifの既定の結果は必ず設定したほうがよさそう。
ifの書き方
それでは実際にifの使い方をご紹介。
if else
やりたいこと
If(条件) 処理1 else デフォルト処理
Power Appsでは
If(条件, 処理1, デフォルト処理)
if elseif else
やりたいこと
If(条件1) 処理1 else if(条件2) 処理2 else デフォルト処理
Power Appsでは
If(条件1, 処理1, 条件2, 処理2, デフォルト処理)
第3引数に条件分を入れるとelseifになる。
デフォルト処理を省略した場合、結果を返すifなら空白が返され、処理を行うifなら何も行わない。
And条件
やりたいこと
If(条件1 かつ 条件2) 処理1 else デフォルト処理
Power Appsでは
If(And(条件1, 条件2), 処理1, デフォルト処理)
または
If(条件1 && 条件2, 処理1, デフォルト処理)
Or条件
やりたいこと
If(条件1 もしくは 条件2) 処理1 else デフォルト処理
Power Appsでは
If(Or(条件1, 条件2), 処理1, デフォルト処理)
または
If(条件1 || 条件2, 処理1, デフォルト処理)
AndやOr内の条件は,で区切っていけばいくつでも追加していくことができる。
コメント