編集フォームを開いた瞬間に「自分」を入力済みにする方法

Power Platform

 

この記事は、Power Apps Advent Calendar 2025 12月3日 担当分の記事です。
Microsoft Power Apps – Qiita Advent Calendar 2025 – Qiita

編集フォームを開くたびに、「アプリを開いているユーザー(自分)」の情報を最初から自動入力する方法を紹介します!

アプリ・画面の完成イメージ

編集フォームを開くたびに、User列に自分の情報が入ります。

手順と解説(詳細)

0. 前準備

ユーザーまたはグループ列が入ったSharePointリストを用意します。
今回は「UserTest」というリスト名に「User」という列を用意しています。

今回は、以下のようなサンプルアプリで説明します。

Button1のOnSelectプロパティ

NewForm(Form1)

Form1のDataSourceプロパティ(データからSharePointリストを接続してください)

UserTest

Button2のOnSelectプロパティ

SubmitForm(Form1)

1. Office365ユーザー コネクタを追加する

ユーザー情報を取得するために、まずはアプリにコネクタを追加します。

  1. 左側の「データ」アイコンをクリックします。
  2. 「データの追加」から「Office365ユーザー」を検索して追加します。

2. カードのロックを解除する

編集フォーム内のコントロールを編集できるように、カードのロックを解除します。

  1. 編集したいユーザー列のカード(例:User_DataCard1)を選択します。
  2. 右側のプロパティパネルで「詳細設定」タブを開きます。
  3. 「プロパティを変更するためにロックを解除します」をクリックします。

3. Itemsプロパティを設定する

まずは、ドロップダウン(コンボボックス)にユーザー一覧が表示されるようにします。

  1. カード内のコンボボックス(例:DataCardValue2)を選択します。
  2. Items プロパティに以下の数式を入力します。
Office365ユーザー.SearchUserV2({isSearchTermRequired:false}).value

解説:
SearchUserV2: ユーザーを検索する関数です。
isSearchTermRequired:false: 検索ワードなしでも全ユーザー候補を表示するようにします。

4. DefaultSelectedItemsプロパティを設定する

アプリを開いているユーザー(自分)を初期値として設定します。

  1. 同じくコンボボックス(DataCardValue2)を選択したままにします。
  2. DefaultSelectedItems プロパティに以下の数式を入力します。
Office365ユーザー.SearchUserV2({searchTerm:User().Email}).value

解説:
User().Email: 現在アプリを操作しているユーザーのメールアドレスを取得します。
searchTerm: メールアドレスで検索をかけることで、ピンポイントで「自分」の情報を取得し、初期選択状態にします。

表示がおかしい場合
コンボボックスのフィールド設定を確認してください。 プロパティパネルの「フィールド」の編集をクリックし、「主要なテキスト」と「SearchField」が City などになっている場合は、DisplayName に変更しましょう。これで名前が正しく表示されます。

5. 更新用データ(Update)を設定する

最後に、SharePointなどのデータソースに正しく保存されるように、カード自体の更新設定を変更します。 これをしないと、見た目は名前が入っていても、保存時にエラーになったり空になったりすることがあります。

  1. コンボボックスではなく、カード全体(例:User_DataCard1)を選択します。
  2. Update プロパティに以下の数式を入力します。
{
    '@odata.type': "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser",
    DisplayName: DataCardValue2.Selected.DisplayName,
    Claims: "i:0#.f|membership|" & Lower(DataCardValue2.Selected.Mail),
    Department: "",
    Email: DataCardValue2.Selected.Mail,
    JobTitle: "",
    Picture: ""
}

解説:
SharePointのユーザー列は特殊なデータ形式(Complex Type)を求めてくるため、上記のように手動でJSON形式のデータを構築して渡す必要があります。
DataCardValue2 の部分は、ご自身のアプリのコンボボックス名に合わせて書き換えてください。

コメント

タイトルとURLをコピーしました