Power Appsでデータ保存前に確認ダイアログを表示したいけど、カスタムで画面を作るのは面倒…そんな経験はありませんか?
Confirm Power Fx の関数リファレンス – Power Platform | Microsoft Learn
実は、Power Appsに待望のConfirm関数が登場しました。今まで複雑な実装が必要だった確認ダイアログが、たった数行のコードで実装できるようになりました。
今回は、このConfirm関数について、基本的な使い方から実装のポイントまで、詳しく解説していきます。
Confirm関数とは?基本機能をチェック
Confirm関数は、画面上に確認ボタンとキャンセルボタンを含むダイアログボックスを表示する関数です。モデル駆動型アプリでは以前から使えていた機能なんですが、ようやくキャンバスアプリにも登場した形です。
使い方はいたってシンプルで、Confirm関数にメッセージを記載するだけです。オプションで追加の設定もできるようになっています。
Confirm( Message ,OptionsRecord )
必須要件:モダンコントロールとバージョン
Confirm関数を完全な状態で使うには、以下の要件を満たす必要があります:
- バージョン: 3.26022.5以上
- モダンコントロール: オン
- モダンテーマ: オン
キャンバスアプリでConfirm関数を使う場合、Fluentダイアログを利用するため、モダンコントロールが有効になっていることが必須です。モダンコントロールが無効の場合は、ネイティブのブラウザダイアログが表示されてしまいます。

戻り値の仕組み
Confirm関数の戻り値は、ユーザーが確認ボタンを押した場合はTrueを返し、それ以外(キャンセルボタンやダイアログを閉じた場合)はFalseを返します。
このブール値を使って、If関数と組み合わせることで、確認後の処理を簡単に分岐が可能です。
設定できる4つのオプション
Confirm関数では、4つのオプションが設定できます。
1. ConfirmButton(確認ボタン)
デフォルトだと「OK」や「Confirm」と表示される成功側のボタンを、日本語で「登録」「検索」など、好きな文言に置き換えることができます。
2. CancelButton(キャンセルボタン)
キャンセルボタンの文言も同様に変更できます。
3. Title(タイトル)
ダイアログのタイトル部分で、太文字のボールドで表示されます。
4. Subtitle(サブタイトル)
タイトルとメッセージの間に表示されるサブタイトルです。
オプション設定の記述例
全てのオプションを設定する場合は、以下のように記述します:
Confirm(
"メッセージ",
{
Title: "タイトル",
Subtitle: "サブタイトル",
ConfirmButton: "確認",
CancelButton: "キャンセル"
}
)
カスタムボタンラベルを設定しない場合、キャンバスアプリでは「Confirm」と「キャンセル」がデフォルトで表示されます。
実践的な使用例
データ保存前の最終確認
おそらく一番多く使われるのは、フォーム保存前の確認でしょう。例えば、こんな感じで書けます:
If(
Confirm("保存していいですか?"),
SubmitForm(Form1);
ResetForm(Form1);
Notify("保存が完了しました")
)
If関数でConfirm関数を囲むことで、「保存していいですか?」と確認を取った後、OKの場合はSubmitFormでデータを登録し、ResetFormでフォームをリセット、最後に通知を表示する、という流れが実現できます。
キャンセルをした場合は何も実行されないので、保存がされない仕組みですね。今まではカスタムで実装していたものを、このConfirm関数に置き換えることができる、非常に便利な関数です。
変数に結果を格納する
複数の処理で確認結果を使いまわしたい場合は、変数に格納することもできます:
Set(varConfirmDelete, Confirm("削除してもよろしいですか?"));
If(
varConfirmDelete,
Notify("削除しました"),
Notify("キャンセルしました")
)
SharePointリストと連携した実装例
SharePointリストにデータを保存する際の確認も簡単に実装できます:
If(
Confirm(
"以下の内容を登録します",
{
Title: "登録内容の確認",
Subtitle: "データソース: SharePoint",
ConfirmButton: "登録",
CancelButton: "キャンセル"
}
),
SubmitForm(Form1);
ResetForm(Form1)
)
オプションを活用することで、より分かりやすい確認ダイアログを作成できますね。
制限事項とよくある質問
Q1: キャンセルボタンを非表示にできますか?
答えはNoです。
現在のデザインでは、常にConfirmボタンとCancelボタンの両方が表示されます。「強制的にOKボタンだけ」みたいなことはできません。
Q2: 3つ目のボタンや、2つ以上のオプションを追加できますか?
こちらもNoです。
Confirm関数は、確認とキャンセルアクションの2つのオプションのみサポートされています。3つ以上の選択肢が必要な場合は、カスタム画面やドロップダウンコントロールなど、別のUIを使用する必要があります。
Q3: Confirmは他の操作をブロックしますか?
答えはYesです。
Confirm関数は、ユーザーがアプリの他の部分と対応する前に閉じる必要があるモーダルダイアログとして表示されます。しかし、動画や音声、タイマーなどは一時停止しません。あくまでユーザーの操作をブロックする形です。
文字数制限と改行について
文字数の上限
実際に検証した結果、以下の文字数上限が確認してみました:
メッセージ、タイトル、サブタイトル:
- 960文字以上でも表示可能
- 実用上、制限はほぼない
ボタンラベル(ConfirmButton / CancelButton):
- 合計で約30〜32文字が上限
- 片方15〜16文字程度が限界
- 両方合わせて28文字程度が安全圏
ボタンラベルの空文字列について
- 空文字列: テキストなしのボタンが表示される
- 半角スペース: 空と同じ扱い
- 全角スペース: スペースとして認識される
ラベルを表示したくない場合は、全角スペースを入れるといいでしょう。
改行は使えない
残念ながら、Confirm関数では改行には対応していません:
- 改行コード(
\n): そのままテキストとして表示 - HTMLタグ(
<br>): そのままテキストとして表示 - その他の改行方法: 全て非対応
メッセージ、タイトル、サブタイトル全てで、基本的に一行で表示されると考えておきましょう。
まとめ:Confirm関数の特徴と使い分け
Confirm関数のメリット
Confirm関数は非常に強力な関数で、今まで複雑な実装が必要だった確認ダイアログが、かなりシンプルに実装できるようになりました。
主なメリット:
- 簡単に実装できる: たった数行で確認ダイアログが作れる
- 直感的: 結構直感的にわかるので、比較的使いやすい
- 実用的: データ保存前の確認など、実践的な用途で活躍
要件まとめ
必要な設定:
- バージョン3.26.0.22.5以上
- モダンコントロール: オン
- モダンテーマ: オン
文字数上限:
- メッセージ、タイトル、サブタイトル: 実用上制限なし
- ボタンラベル: 合計30〜32文字(片方15〜16文字)
制限事項:
- ボタンは常に2つ(Confirm/Cancel)のみ
- デザインはテーマに準拠
- 改行は非対応

こんな場合は従来の方法を
以下のような場合は、従来のカスタム実装の方が向いているかもしれません:
- 3つ以上のボタンが必要な場合
- 独自のデザインが必要な場合
- 改行が必要な長文を表示したい場合
- テーマに依存しないデザインにしたい場合
デザインはモダンテーマに準拠するので、細かくデザインを作り込みたい場合は、やはり独自の実装を使う形になりますね。
最後に
Confirm関数は、モデル駆動型アプリでは結構前から使えていた機能ですが、ようやくキャンバスアプリにも登場しました。
シンプルな確認ダイアログが必要な場合は、このConfirm関数を使うことで開発効率が大幅に向上します。今後のPower Apps開発に、ぜひ活用してみてください。



コメント