Power Appsのチェックボックス徹底ガイド:基本・複数選択・保存・落とし穴まで

Power Appsのチェックボックスを基礎から実務レベルまで解説。Classic/Modernの違い、SharePoint/Dataverseへの保存、ギャラリーでの複数選択・全選択、エラー対処をまとめました。

💡

この記事でわかること

チェックボックスの基本(値の取得・初期値・イベント)/ Classic と Modern の違い / SharePoint や Dataverse への保存 / ギャラリーでの複数選択・全選択の実装 / よくあるエラーと対処法。

基本:チェックボックスの値とイベント

  • 値の取得:
    • Classic: Checkbox1.Value(true/false)
    • Modern: Checkbox1.Checked(true/false)
  • 初期値:
    • Classic: Default に true/false を設定
    • Modern: Checked に true/false(または変数)
  • イベント:
    • Classic: OnCheck / OnUncheck /(必要に応じて OnChange
    • Modern: OnChange(状態変化時に発火)
💡

Tip

画面読み込み時に既定値を切り替えたい場合は、画面の OnVisible などでコンテキスト変数を設定し、 Default(Classic)や Checked(Modern)に変数をバインドします。

よく使うスニペット

トグル用の変数と連動させる例powerfx
// 画面の OnVisible など
UpdateContext({ isDone: false });

// チェックボックス(Classic)の Default
isDone

// チェックボックス(Modern)の Checked
isDone

// クリック時(Modern の OnChange など)
UpdateContext({ isDone: !isDone });

データソースへ保存(SharePoint / Dataverse)

はい/いいえ(SharePoint)や Two options(Dataverse)の列に保存

SharePoint へ Patch(はい/いいえ列)powerfx
Patch(
'Tasks',
Defaults('Tasks'),
{
  Completed: Checkbox1.Value // または Checkbox1.Checked(Modern)
}
)
🚨

Caution

型不一致エラー(互換性のない型)を避けるには、文字列ではなく true/false(ブール)を渡すこと。 Checkbox1.Text ではなく Value/Checked を使用します。

複数選択チェックボックス(ギャラリー)

Power Apps には「複数選択チェックボックス」コントロールはありません。ギャラリー+チェックボックスで実装します。

1

データを準備

選択肢のテーブルを用意します(例:SharePoint の Choice、Dataverse の Option Set、またはコレクション)。 例として Choices([@'Issues'].Categories) を想定します。

2

ギャラリーにバインド

ギャラリー Gallery1.Items に選択肢のテーブルを設定。

3

チェック状態の保持

選ばれたレコードを格納するコレクション colSelected を作成し、チェック/解除で追加・削除します。

4

保存

SharePoint の複数選択 Choice や Dataverse の MultiSelect Option Set に、そのまま colSelected を渡すか、必要なら形を整えて Patch。

実装例

  • ギャラリー内のチェックボックス(Classic)
    • Default: ThisItem in colSelected
    • OnCheck: Collect(colSelected, ThisItem)
    • OnUncheck: Remove(colSelected, ThisItem)
初期化と保存(SharePoint の複数選択 Choice 例)powerfx
// 画面の OnVisible(初期化)
Clear(colSelected);

// ギャラリーのチェックボックス(Classic)
// Default: ThisItem in colSelected
// OnCheck: Collect(colSelected, ThisItem)
// OnUncheck: Remove(colSelected, ThisItem)

// 保存ボタン OnSelect 例
Patch(
'Issues',
Defaults('Issues'),
{
  Categories: colSelected // Choices() のレコードを集めていれば、そのまま渡せる
}
);

Modern での書き換え

Modern ではチェックボックスの既定/状態プロパティ名が Checked になる点に注意。 コレクションの扱い(Collect/Remove)は同様です。

全選択・全解除(マスターのチェックボックス)

// マスターのチェックボックス(画面上部など)
// OnCheck: 画面に表示中の全アイテムを選択状態に
ClearCollect(colSelected, Gallery1.AllItems);

// OnUncheck: すべて解除
Clear(colSelected);

// マスターの既定状態(すべて選ばれている時のみ true)
CountRows(Gallery1.AllItems) > 0 && CountRows(colSelected) = CountRows(Gallery1.AllItems)
⚠️

Warning

大量データの全選択はパフォーマンスに注意(画面に描画中の Gallery1.AllItems 単位での運用が現実的)。

トラブルシューティング(Q&A)

互換性のない型です と出ます
💡

文字列 "true"/"false" を送っていないか確認。常に Checkbox1.Value(Classic)や Checkbox1.Checked(Modern)など、ブール値を渡してください。

初期値が反映されません
💡

変数と双方向で競合している可能性。Default/Checked には「初回だけ効く」概念があり、 その後はユーザー操作が優先されることがあります。強制的に戻す場合は Reset(Checkbox1) を呼び出します。

Dataverse に保存すると常に NO になる
💡

Patch の対象列が Two options(はい/いいえ)であること、値がブールであることを確認。 参照しているプロパティが Text や別の型になっていないか見直してください。

複数選択の保存がうまくいきません
💡

SharePoint の Choice(複数)や Dataverse の MultiSelect は「レコードのテーブル」を要求します。 Choices() のレコードをそのままコレクションしていれば Patch に直接渡せます。 自前のテーブルなら、必要に応じて ForAll(){ Value: ThisRecord.Value } 形に整えてください。

まとめ

  • Classic と Modern で主に「既定値/状態」のプロパティ名が異なる(Default vs Checked)。
  • 値の取得は Value(Classic) / Checked(Modern)。保存時は常にブールを渡す。
  • 複数選択はギャラリー+コレクションで構築し、データソースにはレコードのテーブルとして保存。
  • 全選択は Gallery1.AllItems を用いた運用が簡単。
📝

Note

関連する小技やサンプルを今後も追加予定です。ほかのユーティリティは 無料ツール一覧 からどうぞ。

💭この記事はいかがでしたか?

あなたの感想やご意見をお聞かせください。今後のコンテンツ改善の参考にさせていただきます。

📤この記事をシェア

この記事が役に立ったら、ぜひ他の人にも共有してください!

✍️記事について

この記事の内容に関してご質問やご指摘がございましたら、お気軽にお問い合わせください。

⚠️ 記事の内容は投稿時点での情報です。最新の情報については公式サイト等でご確認ください。

🔄 内容の正確性には注意を払っていますが、誤りがある場合はお知らせください。

📂同じカテゴリの記事

🏷️関連記事

最新記事

🚀もっと見つける