Power Apps 今更だけどPower Appsのifを詳しく調べてみた|Ifの仕様、値返しと処理実施の使い分け

今更だけど、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内の条件は,で区切っていけばいくつでも追加していくことができる。

関連記事

コメント

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