
「この画面は部長だけアクセスできるようにしてほしい」、「この画面に一般社員がアクセスできるとセキュリティ面が心配・・・」などのアクセス権限に関する実装要望は少なくありません。
この記事では、Power Appsで画面のアクセス権限を実装する方法を紹介します。
アクセス権限を実装する前に知っておくべき前提知識
アクセス権限を実装するには、以下の要素が必要です:
- If関数やSwitch関数
- User関数
- 適切なテーブル設計
以下で、それぞれについて紹介します。
If関数やSwitch関数
マイクロソフトの公式ドキュメントでIf関数の構文は
If( 条件1, ThenResult1 [, 条件2, ThenResult2, … [, DefaultResult ] ] )
マイクロソフトの公式ドキュメントでSwitch関数の構文は
Switch( 数式, 一致1, 結果1 [, 一致2, 結果2, … [, デフォルトの結果 ] ] )
一般的には、1つの条件に対して判断を行う場合はIf関数を使用し、条件分岐で判断して実行を行う場合はSwitch関数を使用します。ただし、If関数を使って条件分岐で判断することも可能です。
これら2つの関数は、Power Appsで画面のアクセス権限を実装する際に欠かせません。
User関数
Power AppsのUser関数の構文は
User()
User関数を使えば、ログインユーザーの情報を取得できます。User関数で取得できるログインユーザーの情報は下記となります:
- メールアドレス
- フルネーム
- Microsoft Entraのオブジェクト ID
- プロフィール画像のURL
例えば、以下のコードを記述すると:
User().Email
ログインユーザーのメールアドレスを取得できます。
User関数は、アクセス権限を実装する際に欠かせない重要な関数です。
適切なテーブル設計
アクセス権限を実装する際には、権限を管理・コントロールするためのテーブルが必要です。このテーブルには、最低限以下の必須列が含まれるべきです。:
- ロール
これら2つの列が必要な理由は、User関数とIf関数を活用するためです。
実装例
実例を示しながら解説しますので、まず以下の従業員テーブルを用意します:
employee_id | name | role | |
1 | 山田花子 | YamadaHanako@xxx.com | 部長 |
2 | 山田一郎 | YamadaIchiro@xxx.com | 課長 |
3 | 鈴木太郎 | SuzukiTaro@xxx.com | 係長 |
次に、3つのテキストコントロールを用意します:

「部長ロールが見えます」テキストコントロールのVisibleプロパティに以下のコードを記述します:
If(
LookUp(
AccessTable,
mail = User().Email
).role = "部長",
true,
false
)
「課長ロールが見えます」テキストコントロールのVisibleプロパティに以下のコードを記述します:
If(
LookUp(
AccessTable,
mail = User().Email
).role = "課長",
true,
false
)
「係長ロールが見えます」テキストコントロールのVisibleプロパティに以下のコードを記述します:
If(
LookUp(
AccessTable,
mail = User().Email
).role = "係長",
true,
false
)
以上の実装が完了し、「山田一郎」のアカウントでPower Appsにログインすると、

↑「部長ロールが見えます」テキストコントロールと「係長ロールが見えます」テキストコントロールが非表示になり、「課長ロールが見えます」テキストコントロールだけが表示されます。
Visibleプロパティのコードを簡単に解説します。LookUp関数で従業員テーブルを検索し、User関数で取得したログインユーザーのメールアドレスと一致するレコードを抽出します。その後、If関数で条件を評価し、条件と一致すれば表示され、一致しなければ非表示となります。
この実装方法を活用することで、VisibleプロパティやDisplayModeプロパティにコードを記述し、画面のアクセス権限を制限することが可能です。
まとめ
今回の記事では、Power Appsでアクセス権限を実装方法について紹介しました。
アクセス権限を実装するには、If関数とUser関数を活用することに加え、アクセス権限を管理するためのテーブルを設計する際に、従業員メールアドレスとロールを格納する列を必須項目として設定する必要がありますです。