Power Appsのチェックボックス徹底ガイド:基本・複数選択・保存・落とし穴まで
Power Appsのチェックボックスを基礎から実務レベルまで解説。Classic/Modernの違い、SharePoint/Dataverseへの保存、ギャラリーでの複数選択・全選択、エラー対処をまとめました。
この記事でわかること
チェックボックスの基本(値の取得・初期値・イベント)/ Classic と Modern の違い / SharePoint や Dataverse への保存 / ギャラリーでの複数選択・全選択の実装 / よくあるエラーと対処法。
基本:チェックボックスの値とイベント
- 値の取得:
- Classic:
Checkbox1.Value
(true/false) - Modern:
Checkbox1.Checked
(true/false)
- Classic:
- 初期値:
- Classic:
Default
に true/false を設定 - Modern:
Checked
に true/false(または変数)
- Classic:
- イベント:
- Classic:
OnCheck
/OnUncheck
/(必要に応じてOnChange
) - Modern:
OnChange
(状態変化時に発火)
- Classic:
Tip
画面読み込み時に既定値を切り替えたい場合は、画面の OnVisible
などでコンテキスト変数を設定し、
Default
(Classic)や Checked
(Modern)に変数をバインドします。
よく使うスニペット
// 画面の OnVisible など
UpdateContext({ isDone: false });
// チェックボックス(Classic)の Default
isDone
// チェックボックス(Modern)の Checked
isDone
// クリック時(Modern の OnChange など)
UpdateContext({ isDone: !isDone });
データソースへ保存(SharePoint / Dataverse)
はい/いいえ(SharePoint)や Two options(Dataverse)の列に保存
複数選択チェックボックス(ギャラリー)
Power Apps には「複数選択チェックボックス」コントロールはありません。ギャラリー+チェックボックスで実装します。
データを準備
選択肢のテーブルを用意します(例:SharePoint の Choice、Dataverse の Option Set、またはコレクション)。
例として Choices([@'Issues'].Categories)
を想定します。
ギャラリーにバインド
ギャラリー Gallery1.Items
に選択肢のテーブルを設定。
チェック状態の保持
選ばれたレコードを格納するコレクション colSelected
を作成し、チェック/解除で追加・削除します。
保存
SharePoint の複数選択 Choice や Dataverse の MultiSelect Option Set に、そのまま colSelected
を渡すか、必要なら形を整えて Patch。
実装例
- ギャラリー内のチェックボックス(Classic)
- Default:
ThisItem in colSelected
- OnCheck:
Collect(colSelected, ThisItem)
- OnUncheck:
Remove(colSelected, ThisItem)
- Default:
// 画面の 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)
を呼び出します。
Patch の対象列が Two options(はい/いいえ)であること、値がブールであることを確認。
参照しているプロパティが Text
や別の型になっていないか見直してください。
SharePoint の Choice(複数)や Dataverse の MultiSelect は「レコードのテーブル」を要求します。
Choices()
のレコードをそのままコレクションしていれば Patch
に直接渡せます。
自前のテーブルなら、必要に応じて ForAll()
で { Value: ThisRecord.Value }
形に整えてください。
まとめ
- Classic と Modern で主に「既定値/状態」のプロパティ名が異なる(
Default
vsChecked
)。 - 値の取得は
Value
(Classic) /Checked
(Modern)。保存時は常にブールを渡す。 - 複数選択はギャラリー+コレクションで構築し、データソースにはレコードのテーブルとして保存。
- 全選択は
Gallery1.AllItems
を用いた運用が簡単。
Note
関連する小技やサンプルを今後も追加予定です。ほかのユーティリティは 無料ツール一覧 からどうぞ。
💭この記事はいかがでしたか?
あなたの感想やご意見をお聞かせください。今後のコンテンツ改善の参考にさせていただきます。
📤この記事をシェア
この記事が役に立ったら、ぜひ他の人にも共有してください!
⚠️ 記事の内容は投稿時点での情報です。最新の情報については公式サイト等でご確認ください。
🔄 内容の正確性には注意を払っていますが、誤りがある場合はお知らせください。