[基礎] Excel接続のメリットと「同時編集」の限界を知る
まずはExcelをデータソースとして作成し、メリットとデメリットを理解します。
Excelを選ぶメリット
データソースとして最もなじみのあるのがExcelです。
Excelであれば、OneDriveやSharePointに保存したファイルをそのままデータベースとして利用できます。
- 手軽に始められる: 既存Excelをそのままアプリ化できるため、データ移行の手間がかからず導入のハードルが低い
- データ修正が簡単: アプリからではなく、Excelを直接開いてデータを修正・確認することが可能
Excelでアプリを作る手順
- 資産管理用のExcelファイルを作成後、管理表をテーブル化します。
※テーブルに名前を付けると判別しやすいです - Power Appsの左メニューから「作成」>「Start from data」にある「Excel Online」を選択します。
- 「テーブルを選択」では、SharePointサイトから該当のExcelを見つけ、作成したテーブルを選択します。
- 「アプリを作成する」を押下後、自動的に画面が生成されます。
- RightContainer内のFormで「フィールド」を選択し、適切に並び替えて表示順序を変更します。
- SidebarContainerのRecordGalleryで、「Items」を選択し、下記の式に変更します。
Search([@資産管理テーブル], SearchInput1.Text, 資産名, 管理者)
Search関数の構文はSearch(Table*, SearchString, Column1 [, *Column2*, ... ] )です。
上記の式では、検索ボックスに入力された値をキーに、資産名もしくは管理者に対して検索を行い、どちらかの列内にある値がヒットすれば表示されます。
- アプリ名を設定して保存後、「アプリのプレビュー」からアプリを確認します。

Tips: データからアプリ作成を開始すれば、自動的に画面が生成されるので楽です。
Caution: 自動生成は楽な反面、カスタマイズには意外と苦労します。
Caution: この方法でアプリを作成後、Excelテーブルには「__PowerAppsId__」の項目列が自動生成されます。これは、Power Apps側で行を一意に扱うために必要なものです。
Excelを選ぶデメリット
同時編集の限界(ロックの問題)
手軽さの反面、Excelには同時編集の限界があります。
Excelファイルは、他の人がファイルを開いている間、自分が更新しようとするとロックがかかります。
これを排他制御と言い、Excelの仕様で、Excelのデータを安全に保つためのものです。
Power Appsでデータソースに使用する場合でも、この制約は発生します。
具体的なケースを想定します。
- ユーザーAがアプリからデータを編集している
- ユーザーBがアプリからデータを編集もしくはExcelファイルを開いている
- ファイルロックが発生し、データ更新が失敗する
OneDriveやSharePoint上のExcelを操作していると、Excelの共同編集機能がはたらき、読取専用になることは起こりにくくなっています。
また、Excelをブラウザで開いている場合、Power Appsと競合しにくい傾向があります。
とはいえ、例えばデスクトップ版での操作や、ファイルサイズが大きい(データ同期に時間がかかる)場合にファイルロックがかかるのは仕様上あり得ます。
エラーハンドリングの難しさ
エラーハンドリングとは、アプリやシステムでエラーが起きた場合、そのエラーに応じて処理を取り扱うものです。
Power AppsではPatch 関数や SubmitForm 関数を使ってデータ保存しますが、Excelがロックされている場合は保存されません。
Excelの場合、この時の保存エラーに対し、アプリ側での対応が難しくなります(保存エラーの表示、なぜエラーが起きたか、どのように処理するか)。
// 例)Excelのデータ更新
// ロックされているとエラーになる
Patch(
資産管理テーブル,
Defaults(資産管理テーブル),
{ 資産名: "新しいPC", カテゴリ: "PC" }
)
// 同上
SubmitForm(Form1)
「同時編集できない」制約は、複数人で使用する資産管理アプリにおいては致命的な欠点となります。
Excelをデータソースにする場合、個人用や閲覧専用であればでも十分ですが、共有・更新を行うアプリには不向きと言えます。
広告