技術情報ブログ
Power Platform
2022.05.25

Power Apps:動的リストの実装方法

Power Apps:動的リストの実装方法

こんにちは。アーティサン株式会社の小刀稱(ことね)です。

今回はPower Apps キャンバスアプリ上で動的リストを実装する方法について紹介します。
機能は以下動画をご覧ください。

使用する場面も多い機能だと思いますので、実装方法の1つとして参考にしてください。

内容としては、Power Appsでアプリを作成している方に向けた記事です。

 

準備

今回はコレクション(colProduct)を用いて実装します。

コレクションの型は以下の通りです。

No(数値):各レコードのNo
製品名(文字列):製品名
コレクション(colProduct)
コレクション(colProduct)

また、下記画像を参考にしてPower Apps キャンバスアプリ上で各パーツを追加してください。

パーツ
パーツ

ポイントのパーツは以下です。

  • テキスト入力:製品名を入力します

  • アイコン():レコードを追加します

  • アイコン(ゴミ箱):対象レコードを削除します

それでは、動的リストを実装していきましょう。
以下機能の実装方法について説明します。

 

レコードの追加機能

アイコン(の実装方法です。

製品名を入力し、アイコン(を押下すると、レコードがコレクションに追加されるようにします。

レコードを追加する際には、先頭もしくは末尾に追加する方法があります。
それぞれについて説明します。

 

レコードの先頭に追加

アイコン(のOnSelectプロパティに以下を記載します。
※txtProductは製品名を入力している「テキスト入力」パーツです。

// コレクションの先頭にレコードを追加
UpdateIf(colProduct, true, { No: No+1 });              // 各レコードのNoを+1
Collect(colProduct,{ No: 1, 製品名: txtProduct.Text}); // No.1のレコードを追加
コレクションの先頭にレコードを追加
コレクションの先頭にレコードを追加

ポイントとしては、UpdateIf(colProduct, true, { No: No+1 })の部分です。

UpdateIf 関数を用いて、各レコードのNoを+1しています。
その後、Noを1に設定したレコードを追加しています。

UpdateIf 関数については、以下を参照してください。
Power Apps の Update および UpdateIf 関数

 

レコードの末尾に追加

アイコン(のOnSelectプロパティに以下を記載します。
※txtProductは製品名を入力している「テキスト入力」パーツです。

// コレクションの末尾にレコードを追加
Collect(colProduct,{ No: Max(colProduct,No) + 1, 製品名: txtProduct.Text}); // Noの最大値+1のレコードを追加
コレクションの末尾にレコードを追加
コレクションの末尾にレコードを追加

ポイントとしてはMax(colProduct,No) + 1の部分です。

Max 関数を用いて、コレクションのNoに関する最大値を取得します。
その後、最大値 + 1のNoを設定したレコードを追加します。

Max 関数については、以下を参照してください。
Power Apps の Average、Max、Min、StdevP、Sum、および VarP 関数

 

レコードの削除機能

アイコン(ゴミ箱)の実装方法です。

アイコン(を押下すると、レコードがコレクションから削除されるようにします。
アイコン(のOnSelectプロパティに以下を記載します。

With( { thisNo : ThisItem.No },                     // 対象レコードのNoを取得
    RemoveIf(colProduct, No = thisNo);              // 対象レコードを削除
    UpdateIf(colProduct, No > thisNo, {No : No-1}); // 対象レコード以降のNoを-1
)
コレクションからレコードを削除
コレクションからレコードを削除

With 関数を用いて実装している部分がポイントです。

With 関数については、以下を参照してください。
Power Apps での With 関数

RemoveIf 関数でThisItemのレコードが削除されると、Power AppsではThisItemが示すレコードが自動的に更新されます。
よって、RemoveIf 関数の後にThisItemを用いる場合は、想定している値とは異なることがあるので、注意が必要です。

今回は、With 関数を用いることで、RemoveIf 関数実行前のThisItem.Noの値を変数に格納しています。
これにより、RemoveIf 関数の後でも、想定している値を用いることができます。

 

さいごに

本記事では、Power Apps キャンバスアプリにて動的リストを実装する方法についてご紹介しました。

使用する場面も多い機能だと思いますので、ぜひご一読ください!

Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当:小刀稱知哉

小刀稱知哉

🖊小刀稱知哉さんのブログ一覧はこちら

大分県出身(温泉大好き)、現在は茨城県在住

1990年生まれ

30才でメーカーの技術営業からIT業界にジョブチェンジ!!!

趣味は読書(最近書道を始めました)

主にMicrosoftのローコード(SharePoint・Power Platform)に関するに関する営業活動や設計、開発などを担当しております!

(最近はCopilot Studioについても勉強中)

Microsoft MVPを受賞させていただきました!

持ってる資格はPL-200/PL-300/PL-400/PL-600/MS-700/AZ-104/AZ-305/SC-200/SC-100

Microsoftクラウド関連

シェアする
記事カテゴリ
最新記事
2026.02.11

Dataverse:Dataverse入門(1)!商品管理アプリを作ってみる-Dataverseテーブルの作り方

2026.02.04

ローコードツール(Power Platform)を活用した官公庁での発注形態について:元自治体職員(地方公務員)が官公庁におけるローコードツールを活用したシステム開発の発注・契約方法について考えてみた

2026.01.28

Power Apps:自由を手に入れよう!カスタムコンポーネントを構築してみる【実装編】

2026.01.21

Power Apps:PCFって何?カスタムコンポーネントを構築してみる【環境構築編】

2026.01.14

【2026年1月更新】Power Automate 初心者 ~ 中級者 向けロードマップ

DLPポリシー地方自治体MLJSON書式保守性デジタル化推進複数レコードPCFギャラリーSharePointEF CoreMarker Clusterer中級者DXカスタマイズ委任自動化したクラウド フロー運用開発環境filter query管理システム列StyleTestCopilot Studiot共有リンクテンプレート化DX推進テーマカラーPDF変換業務システムExcelマイグレーションRANK()関数キャンバスアプリノウハウcomponentVBAフローの種類選択肢列環境sortガバナンス登録日StudioCanvas自治体DXレポート化サイト複製作り方ダークモード資料自動作成キャンバスアプリ 違いPower AutomateFramework CoreDynamics 365 SalesDatePicker情報技術ダイアログエラーインスタント クラウド フロー参照列本番環境ソートerror notification更新者AITest Studio生成AI自治体APIPnP PowerShellページ承認Formulasプロパティフロー設計Power Apps 導入C#Attribute directivesMicrosoft TranslatorDropdownメッセージIDコンポーネントエクセルスケジュール済みクラウド フローChatGPTライセンスmultiple itemエラー通知更新日生成系AIテスト事例HTTP リクエストカスタムスクリプトドキュメント管理カラーセットテンプレート活用Power Apps 比較attributeO/Rマッパーマーカークラスタリングライブラリviewメールdialogerrorレスポンシブ レイアウトOpenAI環境構築手順複数項目削除変更Copilotテストスタジオ活用ワーケーション業務効率化IT管理カラーユニバーサルデザイン自動化事例モデル駆動型 とはvalidationazure sql databasetailwindcssビューfirst()関数Tips復元responsive layoutオープンAIpipelineシェアポイントフォルダ外部DBlicense使い方サイトブランド化名古屋ファイル保存申請システムアプリデザインNode.jsシステム構築ローコードCase式マルチテナントアクセス制限nest新機能restoreデータ行の制限チャットGPTCI/CD便利機能ゴミ箱連携添付ファイルコントロール基本知識フォントカスタマイズ体験記エンティティワークフロー自動化UI/UXVisual Studio CodeAngularHTTP Requestドロップダウンメニューノーコード入れ子変数Power BI引き継ぎgalleryパイプラインカレンダー完全削除接続ファイルサイズPowerAutomateブランドセンター感想フォルダ構成設定アクセシビリティPCFAccessCSSBreakpointObserver承認動的リスト検索個人列退職ギャラリーDevOpsCalendarモデル駆動型データフローフルリモートワークX-SP Designテーマ作成チームサイトMicrosoft Learn Docsアジャイル開発Wordテンプレート環境構築InfoPathxUnitメディアクエリリマインドcollectionMicrosoft 365グループユーザー列所有者を変更スクロールMicrosoft 365Teamsセキュリティロールrecycle binアーティサンスライドショーデザイン拡張コミュニケーションサイトカスタムコネクタ準委任契約業務自動化カスタムコンポーネントMatTable.Net Core 3.1スマホSetコレクションセキュリティグループSharePoint Online異動コンテナ簡易在庫管理ローコード開発ビジネスルールアクセス許可ArtisanSlide showMicrosoft365サイトの種類OpenAPI請負契約効率化Power Platform CLIAngular MaterialVSCodePCForAll複数の添付ファイル送信元リストLoopショートカットキー時間外非エンジニアDataverseSharePoint Framework転職比較移行要件定義MCPサーバー総合評価型入札資料作成開発手順データ構造.Net Core Test ExplorerレスポンシブUpdateContext承認フローメールの送信非表示Microsoftshortcut key通知体験談JavaScriptSPFx主キー社内ポータル多言語化サイト構成FAQエージェントデジタルトランスフォーメーション初心者向け拡張機能モデル駆動型アプリSortByColumns関数Dataverse for TeamsDynamics 365ロードマップform差出人アプリdesignconcat関数ファイル勉強表示サンプルCopilot StudioグループウェアMUI権限設計AIチャットボットプロポーザル方式ハウツービルドPower AppsTypeScriptitem関数入門技術エクスポートインスタントクラウドフロー[市民開発者JSON文字制限フィルター クエリ内製化切替samplePowerAppsエンゲージメントMultilingualデータ移行実運用官公庁システム画像挿入プロジェクト作成Power PlatformHTMLGoogle Maps初心者Itインポート自動化したクラウドフロー構築デザインフロー実行ドキュメント ライブラリ市民開発登録者X-SPNFCタグ
PageTop
ページトップに戻る