Power Apps × SharePointリスト 後付け連携を徹底解説!既存アプリでも添付ファイルが自動保存できる現実解まとめ(2026年最新)

Power Apps × SharePointリスト 後付け連携を徹底解説!既存アプリでも添付ファイルが自動保存できる現実解まとめ

キャンバスアプリを先に自由に作ってしまい、テキスト入力やドロップダウンを自分で配置してしまった…
私は今まさにこの状態です😅
後から連携ってややこしいの?どうすればいい??

と言うことで、SharePointリストを後付けで連携させる方法を調べたので、その内容と手順をまとめてみました😊

目次

既存のキャンバスアプリに後からSharePointリストを連携させる方法

SharePointリストとの連携は全然難しくありません
むしろ「後からつなぐ」方がレイアウトの自由度が高く、カスタマイズしやすいので、実は優れた選択です。

難易度は「中級くらい」。
基本的なテキスト・選択肢・日付列の連携なら1時間以内、添付ファイル(Attachments)対応を含めても1.5〜3時間程度で形になります(2026年現在)。

1. 最初にやるべきこと:SharePointリストをデータソースに追加(5分で完了)

  1. Power Apps Studioで対象のアプリを開く
  2. 左ペインの「データ」アイコンをクリック(または「表示」→「データソース」)
  3. + データの追加 を選択
  4. 「SharePoint」を検索して選択
  5. 接続したいSharePointサイトのURLを入力(例:https://yourcompany.sharepoint.com/sites/YourSite
  6. 対象のリストを選択 → 接続 / 追加

→ これでリスト名(例:案件リスト)がデータソースとして使えるようになります。

2. 既存コントロールをSharePoint列に紐づける(30〜60分)

主なコントロールごとの設定例です。

コントロール主なプロパティ設定例重要ポイント・注意
テキスト入力Default = ThisItem.Title
Update = Self.Text
列名が日本語の場合は内部名(英語)を確認(リスト設定→列→URLで内部名が見える)
ドロップダウンItems = Choices(案件リスト.優先度)
DefaultSelectedItems = ThisItem.優先度.Value
Choice列の場合。複数選択ならCombo box推奨
コンボボックスItems = Choices(案件リスト.担当者)
DefaultSelectedItems = ThisItem.担当者
人ピッカー・参照列に最適。複数可も対応
日付ピッカーDefaultDate = ThisItem.提出期限
ギャラリー(一覧)Items = 案件リスト
(Filter・Sort・Search追加可)
委任警告が出たら非委任関数(=など)を避け、Search関数を使う

これを「新規登録画面」「編集画面」「詳細画面」それぞれで設定していきます。

3. 保存の方法:一番おすすめは「Edit Form」を使う(添付も自動対応)

2026年現在でも最も安定・簡単な方法は、Edit Formコントロールを活用することです。

おすすめ手順

  1. 登録/編集画面に Edit form を挿入(Insert → Forms → Edit)
  2. DataSource = 追加したSharePointリスト(例:案件リスト
  3. Item = 新規なら Defaults(案件リスト)、編集なら Gallery1.Selected や変数
  4. Fields → 編集フィールドで必要な列をすべて追加(Attachments列は必ず入れる!)
  5. 既存の入力コントロール(テキスト・ドロップダウンなど)をデータカードの中にドラッグ&ドロップ(またはカット&ペースト)
  6. 「登録」ボタンのOnSelectに以下を記述
   SubmitForm(Form1);          // これ1行で項目+添付ファイルが全部保存!
   Notify("登録完了", NotificationType.Success);
   Navigate(Screen一覧);

→ これで添付ファイルのアップロード・削除・表示も自動で動きます!

Attachmentsコントロールの仕様ポイント(2026年最新)

  • フォームに単独で置くとアップロード不可(グレーアウト)→ 必ずフォームの中か、フォームからコピーしたものを使う
  • ファイルサイズ上限:SharePoint側で1ファイル約250MB、Power Apps経由では実質70〜100MB程度が安定
  • 合計添付容量:1レコードあたり約250MB(複数ファイル合計)

4. 「Patchメインで使いたい」「添付を隠しフォームで処理したい」場合

Patchだけで完璧に添付を扱うのはまだ直接サポートされていません(2026年現在も仕様)。

現実的な回避策ベスト2

  1. 隠しフォーム方式(おすすめ)
  • 非表示のEdit Form(Visible=false)を1つ追加
  • Attachments列だけ表示
  • 保存ボタンで以下のように記述
   // メイン項目をPatchで保存
   Patch(
       案件リスト,
       If(IsBlank(varCurrentItem), Defaults(案件リスト), varCurrentItem),
       {
           Title: txtTitle.Text,
           優先度: ddPriority.Selected.Value,
           // 他の列...
       }
   );

   // 添付だけ隠しフォームで保存
   SubmitForm(HiddenAttachmentsForm);

HiddenAttachmentsFormのItemvarCurrentItemMainForm.LastSubmitに設定。

  1. Power Automateフローで添付処理
    大容量ファイル・大量添付・バージョン管理が必要ならこちら。
    → アプリからフローを呼び出し「SharePointにファイル作成+メタデータ更新」を任せる(容量制限も緩和)

5. 添付ファイルの表示・管理まとめ

目的おすすめ実装難易度備考・Tips
新規登録時の添付Edit Form内のAttachmentsコントロール★☆☆SubmitFormで自動保存
既存レコードへの追加/削除同上★☆☆差分が自動反映
一覧(Gallery)で添付表示Gallery内にAttachmentsコントロールを配置★★☆Items = ThisItem.Attachments
添付ファイルのプレビューImage / PDF Viewer + Gallery + ThisItem.Attachments★★☆複数添付時はGallery + 選択したファイルのプレビューが便利
大容量・高度管理が必要別ドキュメントライブラリ + 親IDで紐づけ★★★ファイル250GB対応・バージョン管理・メタデータ検索が可能

別ライブラリ方式が必要になるケース例

  • 1ファイル10MB超が頻発
  • 添付が数十個になる可能性
  • 後で添付だけ検索・バージョン履歴を見たい

まずはフォーム+Attachments列で実装し、制限を感じたら別ライブラリに移行するのが現実的です。

6. 大容量・高度管理が必要な場合のベストプラクティス

別ドキュメントライブラリ + 親IDで紐づけ方式

SharePointリストのAttachments列は便利ですが、ファイルサイズ(実質70〜100MB/ファイルが安定上限)や総容量、バージョン管理の欠如、パフォーマンス低下が課題になるケースがあります。
そんなときはSharePointドキュメントライブラリを別途作り、親レコードのID(またはLookup列)で紐づけるのが業界標準のベストプラクティスです。

メリット比較(再掲・拡張版)

項目SharePointリストのAttachments列別ドキュメントライブラリ(親ID紐づけ)
1ファイル最大サイズ約250MB(Power Apps経由で70〜100MB安定)250GBまで可能(SharePoint標準)
ファイル数制限数百個でパフォーマンス低下数千〜数万個もOK
バージョン管理なしあり(自動・履歴確認可能)
メタデータ(タグ・列)リスト列のみライブラリ列+フォルダで柔軟
検索・フィルターリスト内のみライブラリ全体で高度検索可能
Power AppsアップロードAttachmentsコントロールで簡単Add picture / Attachments + Patch/Flow
権限管理リスト単位ライブラリ/フォルダ/ファイル単位で細かく

実装手順概要(2026年現在の現実的な方法)

  1. SharePoint側準備
  • メインのSharePointリスト(例:案件リスト)に、紐づけ用の列を作成(推奨)
    • 親ID用:数値列(例:親ID)またはLookup列(メインリストのIDを参照)
    • 任意:親タイトル(テキスト)、アップロード日時(日付)、カスタムタグ列など
  • 新しいドキュメントライブラリを作成(例:案件添付ファイル
    • ライブラリに上記の列を追加(親IDなど)
    • 必要に応じてフォルダ作成を有効化(親IDごとのフォルダ分けも可能)
  1. Power Apps側準備
  • データソースにメインリストドキュメントライブラリの両方を追加
  • 添付アップロード用コントロールとして:
    • Attachmentsコントロール(フォーム外で単独使用可)またはAdd pictureコントロール(画像中心の場合)
    • 複数ファイル対応なら、コレクションで一時保存:
      Collect(UploadFiles, {File: AddMediaButton1.Media, Name: AddMediaButton1.FileName, MIME: AddMediaButton1.MediaType})
  1. 保存ロジック例(おすすめ:Power Automateフロー併用なしで可能な範囲)
  • 新規/編集登録ボタンのOnSelectで、まずメイン項目を保存しIDを取得
  • 次にファイルをライブラリにアップロード(Office 365 Groupsコネクタ or Graph API使用) シンプル例(Office365Groups.HttpRequestで直接アップロード)
    ※事前にサイトIDとドライブIDを取得(SharePointコネクタでLookUp可能)
   // 1. メイン項目を保存(Patch or SubmitForm)
   SubmitForm(MainForm);  // または Patch(...)
   Set(varNewID, MainForm.LastSubmit.ID);  // 新規ID取得

   // 2. 添付ファイルをライブラリにアップロード(ForAllで複数対応)
   ForAll(
       UploadFiles,  // コレクション(Attachments.Attachments や AddMediaButtonからCollect)
       Office365Groups.HttpRequest(
           "https://graph.microsoft.com/v1.0/sites/" & varSiteID & "/drives/" & varDriveID & "/root:/案件添付ファイル/" & ThisRecord.Name & ":/content",
           "PUT",
           ThisRecord.File,  // バイナリコンテンツ
           {},
           { "Content-Type": ThisRecord.MIME }
       )
   );

   // 3. アップロード後、メタデータ更新(親ID紐づけ)
   ForAll(
       UploadFiles,
       Patch(
           '案件添付ファイル',
           LookUp('案件添付ファイル', FileLeafRef = ThisRecord.Name),  // ファイル名で特定
           {
               親ID: varNewID,
               親タイトル: MainForm.LastSubmit.Title
               // 他のメタデータ列...
           }
       )
   );

Tips

  • Graph API使用時はOffice 365 Groupsコネクタを追加(プレミアム不要の場合が多い)
  • 複数ファイルでエラーが出やすいので、Concurrent関数やDelayを挟むと安定
  • フォルダ分けしたい場合:root:/案件添付ファイル/親ID_&varNewID&/ のようにパスを動的に
  1. 代替:Power Automateフロー併用(大容量・安定重視)
  • アプリからフロー呼び出し(Power Apps V2トリガー)
  • フローで「SharePoint – ファイルの作成」+「メタデータ更新」
  • メリット:容量制限緩和、バージョン管理自動、エラーハンドリング簡単

注意点(2026年現在)

  • Attachmentsコントロール単独ではライブラリに直接アップロード不可 → コレクション + HTTPリクエスト or フロー必須
  • セキュリティ:アプリ実行ユーザーにライブラリへの「投稿」権限が必要
  • パフォーマンス:大量ファイル時はバッチ処理(ForAll + Concurrent)を推奨

この方式に切り替えると、ファイル管理が本格的なドキュメントシステム並みになります。
まずは小規模でテストして、制限を感じたらフロー併用にステップアップするのがおすすめです!

はい、SharePointリストを新規で作成する際の注意点や作成方法を追記するのはとてもおすすめです!

あなたのブログのテーマが「既存キャンバスアプリに後からSharePointリストを連携させる」ですが、読者の多くは「これからリストを作る人もいる」or「後付け前提だけど、新規作成時の設計が悪いと後で苦労する」ケースが多いです。特に、委任制限列の内部名問題パフォーマンスがPower Apps × SharePointの定番ハマりポイントなので、そこを先回りして書くと記事の価値がグッと上がります。

SharePointリストを作成する際のベストプラクティス(Power Apps連携前提)

Power Appsで使うSharePointリストを新規作成する場合、後々の連携・パフォーマンスを考えて最初から設計しておくのが鉄則です。
(私も明日から実際にリストを作り直しながらアプリに繋げてみようと思っているので、ここは特に注意深くまとめました!)

1. リスト作成の基本手順(SharePoint Onlineの場合)

  1. SharePointサイトを開く → 「+ 新規」 → 「リスト」
  2. リスト名を入力(例:案件管理リスト) → 作成
  3. 列を追加(「+ 列の追加」から)
  • タイトル列(デフォルト)は、意味のある名前にリネーム(例:案件名
  • 必要な列を追加(テキスト、選択肢、日付、人ピッカー、添付など)

2. Power Apps連携で超重要な注意点(2026年現在)

注意ポイント理由・問題点ベストプラクティス
列名は最初に英語で作成日本語列名 → 内部名がエンコード(例:承認期限_x627f__x8a8d__x671f__x9650_)され、Power Appsの式で指定しづらい列作成時は英語(例:ApprovalDeadline)で内部名を確定 → 後から表示名を日本語に変更
内部名を確認する習慣内部名は一度決まると変更不可。Power Apps/Power Automateで列指定時に必須列作成後、列設定画面 → URLのField=以降を確認(エンコード前なら英語のまま)
委任可能な列設計リストが数千件超えるとSearch/Filterが効かなくなる(委任制限:デフォルト2000件)– 頻繁にフィルターする列(日付、選択肢、人ピッカー)はインデックス設定
– テキスト検索はStartsWith()推奨
– 1万件超えそうならDataverse検討
列タイプの選び方Lookup列や複数選択は委任が効きにくい。Attachmentsは容量制限あり– シンプルに:単一テキスト、選択肢、日付、人(単一)
– 大容量添付 → 別ドキュメントライブラリ推奨(後述)
リストのビュー設定デフォルトビューが重いとアプリ起動が遅くなるアプリ用に軽いビューを作成(必要な列だけ表示、フィルターなし)
サイトの選択チームサイト vs コミュニケーションサイト → 権限・パフォーマンス差あり社内アプリ用は「チームサイト」を推奨(権限管理しやすい)

Tips:列作成時の鉄則

  • 英語で列を作成 → 表示名だけ日本語に変更(内部名は英語のままキープ)
  • 例:内部名 Status → 表示名 ステータス
  • これでPower Appsの式が ThisItem.Status でスッキリ書ける!

3. リスト作成後にすぐやるべきこと

  • 列のインデックス設定(リスト設定 → インデックスされた列 → 作成)
  • テストデータ(10〜100件)を入れて委任警告を確認
  • Power Appsからデータソース追加して、Galleryに表示してみる(ここでエラー出たら設計見直し)

新規リストを作るなら、この設計を先に固めておくと、後からアプリに繋げるときに「なんで動かないの…?」が激減します。

まとめ

Power Appsで作った既存アプリにSharePointリストを後から繋げるのは、思ったよりずっと簡単です。

所要時間の目安

  • データソース追加 → 5分
  • 基本列の紐づけ → 30〜60分
  • 保存ロジック+フォーム導入 → 20〜40分
  • 添付ファイル対応 → 30分程度(方式による)
    (新規リスト作成から始める場合:+30〜60分程度)

合計1.5〜3時間で入力+添付が動く状態になります。

新規リスト作成時は「列内部名を英語で」「委任考慮」「インデックス設定」を先に済ませておくと、後が本当に楽です。

添付ファイル対応のスタートポイント

  • 小〜中規模ファイルならSharePointリストのAttachments列(Edit FormにAttachmentsフィールドを追加するだけ!ほぼ自動で動く)
  • 大容量・大量ファイルなら別ドキュメントライブラリ+親ID紐づけ(Graph API or Power Automateフロー推奨)

まずはリストのAttachments列から試してみるのが一番手っ取り早いです!

私も明日から実際にこの手順で挑戦してみます。
(まだ着手前なので、リアルな気づきやハマりポイントは追記予定です)

同じように後付け連携にトライする方、一緒にがんばりましょう〜!

にほんブログ村 ブログブログ 雑記ブログへ 気まぐれ日記ランキング
シェア大歓迎(≧∇≦)
  • URLをコピーしました!
  • URLをコピーしました!
申し込む
注目する
guest
0 Comments
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る
目次