PowerApps でリストフォーム カスタマイズ: 新規時と編集時で画面切り替え
SharePoint リストフォームのカスタマイズを行う際の Tips です。
新規入力時に利用するフォームと、既存アイテムの編集時に利用するフォームを別画面で用意している場合に、動的に切り替える方法です。同様の内容でも、PowerApps アプリを作成する際と、SharePoint リスト フォームを PowerApps でカスタマイズする場合で設定方法が異なるため、今回は SharePoint リストフォームのカスタマイズ時にこれを設定する方法をご紹介します。
■ 設定したい内容
新規入力時と既存アイテムの編集時でフォーム内容を変更したい。
■ 既定の設定内容確認
リストフォームを PowerApps でカスタマイズする場合、下記ユーザー操作による動作はプロパティにて設定できます。
- リスト内の [+新規] をクリックしてフォームを開いた場合
- 既存アイテムの編集としてフォームを開いた場合
- フォームをキャンセルした場合
- フォームを保存した場合
次のようなリストがあったとして、まず既定でどうなってるかみてみましょう。
PowerApps のフォームカスタマイズ画面を開いて内容を確認すると、FormScreen1 という画面が既定で用意されており、画面内には SharePointForm1 という編集フォーム コントロールが含まれていることが確認できます。
既定で用意される画面はひとつですので、新規入力時/編集時/表示時すべてでこの画面を利用しているということです。新規/編集/表示、どの操作でフォームが開かれたかによって、切り替える設定を続いてみてみると、SharePoint リストフォームカスタマイズ時に用意される設定である SharePointIntegration の各プロパティに既定の設定内容が確認できます。 | ![]() |
■ 設定方法
1.画面編集
- 既定の SharePointForm1 画面を複製
- FormScreen1 を NewScreen に画面名変更
- NewScreen 画面内の編集フォーム (SharePointForm1) の名前を NewForm に変更。
編集フォーム内の列について、列Cを読み取り専用に設定変更 (タイトル、列A、列Bが入力可能) - コピーで作成した FormScreen 1_1 を EditScreen に画面名を変更
- EditScreen 画面内の編集フォーム (SharePointForm1_1) の名前を EditForm に変更
編集フォーム内の列について、列Aと列Bを読み取り専用に設定変更 (タイトル、列Cのみが編集可能)
2.SharePointIntegration のプロパティ設定
次のように編集する。
プロパティ | 数式 |
---|---|
OnNew | Set(SPFormMode, “New”); NewForm(NewForm); Navigate(NewScreen, ScreenTransition.None) |
OnEdit | Set(SPFormMode, “Edit”); EditForm(EditForm); Navigate(EditScreen, ScreenTransition.None) |
OnView | Set(SPFormMode, “Disp”); ViewForm(NewForm); Navigate(NewScreen, ScreenTransition.None) |
OnSave | If(SPFormMode =”New”, SubmitForm(NewForm), If(SPFormMode=”Edit”, SubmitForm(EditForm))) |
OnCancel | If(SPFormMode =”New”, ResetForm(NewForm), If(SPFormMode =”Edit”, ResetForm(EditForm))) |
ここでは新規入力時と編集時を切り替える設定を行いましたが、応用として列の値に応じて画面を切り替えることもできますね。
以上、奥田でした。
関連コース
- CI613-H Power Apps による Microsoft 365 活用
Power Apps を利用した業務アプリの作成を Microsoft 365 に含まれるライセンスを活用して行えることを中心にご紹介します。また Power Automate のフローなど Microsoft 365 の各種機能と連携する方法も含めて実践的な実習をベースとして習得いただけます。作成したアプリを共有する方法についても解説します。これから Power Apps をはじめる方におすすめのコースです。 - CI619-H Power Apps Premium によるアプリ作成
Power Apps Premium (有償プラン) の利用を前提とし、Dataverse の利用方法や Dataverse をデータソースとしたキャンバスアプリ、モデル駆動型アプリの作成方法、Power Platform のその他サービスとの連携まで実践的な実習とともに解説します。 - CI614-H SharePoint & Power Apps & Power Automate 実践ラボ
実際にアプリを作成する際によくある疑問点をあげつつ、実践的なテクニックや Tips を確認しながら一緒にアプリやフローを作成するラボを行う上級者向けの超実践コース