よく使う関数|Power Apps【基礎】

制御

目次

If

Power Appsでのif文の書き方は以下の通りです。

If(条件式1, 条件式1がtrueのときの値または処理 [, 条件式2, 条件式2がtrueのときの値または処理, ... [ , 既定の値または処理] ] )

Power AppsではIfの結果として、「値を返す」または「処理を実行」することができます。

// Slider1の値が80より大きい際に赤を、80以下の際に黒を返す(色を設定する)
If(Slider1.Value > 80, Color.Red, Color.Black)
// Checkbox1がチェックされているときはScreen2へ、されていないときはScreen3へ遷移する
If(Checkbox1.Value = true, Navigate(Screen2), Navigate(Screen3))

Switch

Power AppsでのSwitchの書き方は以下の通りです。

Switch(式, 値A, 式=値Aの際の値または処理 [, 値B, 式=値Bの際の値または処理, ... [, 既定の値または処理 ] ] )

Ifと同様に、Switchの結果として「値を返す」または「処理を実行」することができます。

// ラジオボタンの選択によって、表示する文字列を変更
Switch(Radio1.Selected.Value,
    1, "1を選択",
    2, "2を選択",
    3, "3を選択",
    "未選択"
)
// ドロップダウンの選択によって遷移する画面を変更。1,2以外の値が選択された場合はエラーを表示
Switch(Dropdown1.Selected.Value,
    1, Navigate(Screen2),
    2, Navigate(Screen3),
    Notify("不正な値が選択されました。", NotificationType.Error)
)

データ操作

データ操作を行う関数の説明では、サンプルデータとして以下のコレクション「IceCream」を使用します。

First

First関数を使用すると、データソースやテーブル、コレクションの最初のレコードを取得できます。

First(テーブル)

IceQreamコレクションの最初のレコードのプロパティ「Flavor」を取得する式は以下の通りです。

First(IceCream).Flavor

Index

Index関数を使用すると、対象の指定インデックスのレコードを取得できます。

Index(テーブル, 取得するレコードのインデックス)

IceCreamコレクションの最初のレコードのプロパティ「Flavor」を取得する式は以下の通りです。

※Power AppsのIndexは1始まり

Index(IceCream, 1).Flavor

LookUp

LookUp関数を使用すると、条件を満たす最初のレコードを取得できます。

※条件を満たすレコードが複数ある場合も、レコードは1つのみ戻ります

LookUp(テーブル, 条件)

Flavorプロパティが「Vanilla」のレコードの、「Quantity」を取得する式は以下の通りです。

LookUp(IceCream, Flavor="Vanilla").Quantity

LookUpは第3引数に式を渡すことで、取得するレコードを単一の値に変更することも可能です。

以下の式でも、Flavorプロパティが「Vanilla」のレコードの、「Quantity」を取得可能です。

LookUp(IceCream, Flavor="Vanilla", Quantity)

// LookUp(IceCream, Flavor="Vanilla").Quantityと同じ結果

Filter

Filter関数を使用すると、対象をフィルターした結果をテーブル型の値として取得できます。

Filter(テーブル, フィルター式1 [, フィルター式2, ... ] )

Quantityが200以上のレコードを表示する式は以下の通りです。

ForAll

ForAll関数を使用すると、第一引数で渡したテーブルのすべてのレコードに対し、引数で指定した数式を実行した結果のテーブル型の値を取得することができます。

ForAll(Table, Formula)

ForAll関数を使用し、Quantityをすべて税込みにしたテーブルを取得する式は以下の通りです。

※ForAll内で対象のレコードにアクセスする際は「ThisRecord」を使用します。

ForAll(IceCream,
    {Flavor:ThisRecord.Flavor, Quantity:ThisRecord.Quantity * 1.1}
)

ForAll関数を使用することでforループを実現することも可能です。

詳しくはこちらのサイトを参照してください。

UI操作

Notify

Notify関数を使用すると画面にメッセージを表示できます。

Notify( メッセージ[, NotificationType [ , Timeout ] ] )

// NotificationType : メッセージの種類
// Timeout : メッセージの表示時間

NotificationTypeは以下の定義値を指定します。

NotificationType 引数内容
NotificationType.Errorメッセージをエラーとして表示します。
NotificationType.Information (既定)メッセージを情報提供として表示します。
NotificationType.Successメッセージを成功として表示します。
NotificationType.Warningメッセージを警告として表示します。

Notify関数の使用例です。

Notify("エラーメッセージ", NotificationType.Error);

Select関数

画面上のコントロールのOnSelect処理を実行します。

※OnSelectプロパティを持つコントロールのみ指定できます。

Select(コントロール名);

画面のOnVisible処理でボタンのOnSelect処理を呼ぶ例です。

Navigate関数/Back関数

Navigate関数は画面を移動する際に使用する関数です。

画面を移動する際、移動先の画面に引数を渡すことも可能です。

// 画面を移動する
Navigate( 画面名 )

// 画面遷移時のアニメーション、移動先の画面変数を指定して、画面を移動する
// ※移動先の画面変数を指定する場合、画面遷移時のアニメーションの指定は必須です。
Navigate( 画面名 [, 画面遷移時のアニメーション定数 [, 引数 ] ] )

※画面遷移時のアニメーション定数は以下のサイトを確認してください。

Navigate関数で移動した画面でBack関数を使用すると、移動前の画面に戻ることができます。

// 前の画面へ移動する
// ※引数などの設定は不可
Back()

次の画像は画面「Screen2」へ、引数「argText(中身は文字列「XXX」)」を渡し、移動するサンプルです。

ボタンを押下し画面を移動すると、移動先の画面(Screen2)で引数argTextを使用することが可能です。

その他関数

User関数

現在アプリを使用しているユーザーの情報を取得する関数です。

// アプリ使用ユーザーのメール(UPN)を取得
User().Email

// アプリ使用ユーザーのフルネームを取得
User().FullName

//アプリ使用ユーザーのサムネイルを取得
User().Image

Blank関数

Blank(Power Appsでのnull相当値)を取得する関数です。

以下の例では「列1」がBlankのテーブルを取得します。

Filter(テーブル, 列1 = Blank())

その他の関数や詳しいリファレンスはこちら

  • URLをコピーしました!

お役立ち資料



資料請求はこちら

資料請求

無料デモアプリはこちら

無料で作成依頼
目次