目次
対象読者(初級)
- Power Apps でフォーム(入力画面)を作り始めた方
- 「条件付きで必須入力にしたい」という要件に初めて対応する方
- SharePoint リストや Dataverse をデータソースにした業務アプリを作っている方
この記事で学べること
- 「特定条件のときだけ必須入力」にする基本パターン
- 推奨:DataCard の Required で標準バリデーションを使う方法
- 応用:保存ボタン側で条件チェックする方法
- 条件付きで「必須マーク(*)」を表示して入力ミスを減らすコツ
概要(初心者向けに噛み砕いた説明)
Power Apps のフォームでは、入力欄(Text input)だけで必須・任意を決めるのではなく、フォームの部品である DataCard(データカード)が「必須かどうか」を持っています。
なので、「区分がAのときだけ理由を必須にしたい」という場合は、理由の DataCard の Required を条件式にするのが最短・安全です。
標準の仕組みに乗せることで、SubmitForm() 時に自動チェックされ、エラー表示も自然に動きます。
具体的な解説(手順・図解的説明を含む)
想定する画面構成(例)
- 区分:Dropdown(ドロップダウン)
- コントロール名例:
Dropdown_区分
- コントロール名例:
- 理由:Text input(テキスト入力)
- ただし 必須の制御は Text input ではなく DataCard 側
- 条件:区分 = “A” のとき、理由を必須入力にする
方法①:DataCard の Required プロパティを使う(推奨)
どこに設定する?
- フォーム(Edit form)内で「理由」の DataCard を選択
- 右側(または数式バー)で Required プロパティを選ぶ
ポイント:TextInput(入力欄)ではなく DataCard 側です。
設定する式
Dropdown_区分.Selected.Value = "A"
どう動く?
- 区分が「A」のとき
→ 理由が 必須入力 になる - それ以外
→ 理由は 任意入力 になる
そして SubmitForm(EditForm1) 実行時に、未入力なら 標準のエラーとして止まります。
この方法が強い理由
- 標準の必須チェックに乗れる
- エラーメッセージが自動表示される(フォームの作法どおり)
- SharePoint / Dataverse など、フォーム構成が同じなら考え方が共通
- 後から見直したときに「Required を見れば分かる」ので保守しやすい
方法②:保存時に条件チェックを行う(見た目を変えたくない場合)
「必須マーク(*)を出したくない」「条件が複雑」「一時保存がある」などは、保存ボタン側でチェックするのが便利です。
保存ボタン(OnSelect)の例
If(
Dropdown_区分.Selected.Value = "A" && IsBlank(TextInput_理由.Text),
Notify(
"区分がAの場合、理由の入力が必須です",
NotificationType.Error
),
SubmitForm(EditForm1)
)
向いているケース
- 複数条件が絡む(例:区分A かつ 金額が10万円以上 のとき必須、など)
- 「下書き保存はOK、最終保存だけ必須」みたいな段階がある
- UI上は必須に見せず、最後だけ止めたい
注意:この方法は「標準の必須チェック」ではなく、自前のチェックになるので、チェック条件が増えるほどメンテが大変になりがちです。
補足:必須マーク(*)を条件付きで表示する
「今は必須だよ」をユーザーに伝えると、入力漏れがかなり減ります。
Required の制御とセットで考えるのがおすすめです。
必須マーク用ラベルを作る(例)
Dropdown_区分.Selected.Value = "A"
さらに実務っぽくする小技(文章でイメージ)
- 理由の入力欄の上に「理由(区分Aのとき必須)」のような説明を出す
- 区分がAのときだけ、理由の枠線を赤っぽくする(視線誘導)
よくあるつまずきポイント
- TextInput の Required を探してしまう
→ 必須判定の中心は DataCard.Required です Dropdown.Selectedの取り方を間違える
→ 多くの構成ではDropdown_区分.Selected.Value(または Selected.Result)になります- 「必須にしたのに保存できてしまう」
→ Required を設定したのが DataCard ではなく、別コントロールになっていることが多いです - 条件付き必須にしたのに、ユーザーが気づかずエラーになる
→ 必須マーク(*)や説明の Visible 制御とセットがおすすめ
実務での活用例
例:申請フォームで「理由」を条件付き必須にする
- 区分:通常申請 / 例外申請(A)
- 例外申請(A)のときだけ、理由と添付コメントを必須にする
- DataCard.Required で標準チェック
- さらに「*」と説明文を表示して、差し戻し(入力漏れ)を減らす
結果として、
- 入力漏れによる差し戻しが減る
- フォームの動作が標準どおりで説明しやすい
- 条件が増えたときも Required の式を見直すだけで済む
…といったメリットが出ます。
まとめ
- 条件付き必須は Power Apps 標準機能だけで実現可能
- 基本は 方法①:DataCard.Required を条件式にする(推奨)
- 複雑条件・下書き・見た目を変えたくない場合は 方法②:保存時チェック
- 実務では 「Required制御」+「必須マーク等の表示制御」をセットにするとUXが良くなり、ミスが減ります
専門用語リスト
- DataCard
- Required(プロパティ)
- SubmitForm()
- OnSelect
- Notify
- IsBlank
- Visible(プロパティ)
- ドロップダウン(Dropdown)
- SharePoint
- Dataverse
- バリデーション
- UX
