対象読者(初級)

  • 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 プロパティを使う(推奨)

どこに設定する?

  1. フォーム(Edit form)内で「理由」の DataCard を選択
  2. 右側(または数式バー)で 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 の制御とセットで考えるのがおすすめです。

必須マーク用ラベルを作る(例)

  1. 理由の近くに Label を置く(テキストは * など)
  2. LabelVisible を次にする
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