Power Automateで“そのまま保存できない”理由と正しい手順

対象読者

初級(Power Automateクラウドフローを触り始めた方向け)

この記事で学べること

  • Microsoft Formsの添付ファイルがどこに保存されているか
  • なぜSharePointリストにそのまま保存できないのか
  • Power Automateで正しく添付ファイルを保存する手順
  • 実務でよく起きるエラーとその原因

概要

Microsoft Formsには「ファイルのアップロード」という機能があります。
しかし、Formsから SharePointリストに添付ファイルを保存したいと思ってFlowを作ると、ほとんどの人がつまずきます。

実はFormsの添付ファイルは、回答データの中に直接入っていないのです。

この記事では、「なぜできないのか」「どうすればできるのか」を順番に整理しながら解説します。

なぜそのまま保存できないのか

Formsでアップロードされたファイルは、実は以下の場所に保存されています。

  • 個人フォーム :回答者の OneDrive
  • グループフォーム : グループの SharePointドキュメントライブラリ

Power Automateから見ると、Formsが返してくるのは「ファイル本体 ではなく、ファイルの場所(リンク情報)」です。そのため、SharePointリストの「添付ファイル列」に直接保存するということができません。


解決方法は、添付ファイルを取得して、添付し直す

対応方法はとてもシンプルです。

ファイルを一度取得してから、SharePointリストの添付ファイルとして追加する

この考え方が理解できれば、構成は難しくありません。


全体構成(クラウドフローの流れ)

Forms
 ↓
When a new response is submitted
 ↓
Get response details
 ↓
Parse JSON(添付ファイル情報を展開)
 ↓
Create item(SharePointリスト)
 ↓
Apply to each(ファイルごと)
   ↓
   Get file content
   ↓
   Add attachment

具体的な解説

① フォーム送信をトリガーにする

アクション

  • When a new response is submitted

Formsに回答が送信されたらFlowが動きます。

② 回答内容を取得する

アクション

  • Get response details

ここで、
添付ファイルの「リンク情報」を含む回答データを取得します。

③ 添付ファイル情報を展開する(重要)

アクション

  • Parse JSON

Formsの添付ファイルは配列(複数ファイル)として返ってきます。

そのため、必ずParse JSONで分解します。

スキーマ例

{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "name": { "type": "string" },
      "link": { "type": "string" },
      "id": { "type": "string" },
      "size": { "type": "integer" }
    }
  }
}


ここで使える情報はこちら。

  • name:ファイル名
  • link:保存先へのURL
  • id:ファイルID

④ SharePointリストにアイテムを作成

アクション

  • Create item

この時点では 添付ファイルはまだ追加しません。まずはリストの行(アイテム)だけを作成します。

⑤ 添付ファイルごとにループ処理

アクション

  • Apply to each

対象

  • Parse JSON の出力

複数ファイルに対応するため、ループ処理が必要です。

⑥ ファイルを取得する

アクション

  • Get file content
  • link または id を使用して
    実体のファイルを取得します。

個人フォームかグループフォームかでコネクタ(OneDrive / SharePoint)が変わる点に注意してください。

⑦ SharePointリストに添付する

アクション

  • Add attachment

設定内容:

  • IdCreate item のID
  • File Namename
  • File Content:取得したファイル内容

これで、Formsの添付ファイルがSharePointリストに保存されます。

よくあるつまずきポイント

① 添付ファイル列は特殊

  • Create item では設定できない
  • 必ず Add attachment を使う

② ループ処理を忘れる

  • 添付ファイルは配列
  • 1ファイルでも Apply to each が必要

③ ファイルが取得できない

原因:

  • 個人フォーム / グループフォームの違い
  • 参照している保存先が違う

④ URLが使えない

  • URL形式では取得できない場合あり
  • idを使う or パス形式に変換

実務での活用例

  • 申請フォームの証憑ファイルをリスト管理
  • 問い合わせフォーム+添付資料の一元管理
  • 契約書・見積書の受付フロー自動化

さらに実務では、

  • ファイル名の重複対策(タイムスタンプ付与)
  • 元ファイルの削除 or 保管ルール設計
  • エラー時の再実行(リトライ)設計

まで考えると、より実用的になります。

まとめ

今回のポイントはこちらです。

  • Formsの添付ファイルは「回答データ」ではなく「外部ファイル」
  • そのため取得 → 添付 の2ステップが必要

この構造を理解すると、Power Automateでのファイル処理が一気に楽になります。


専門用語リスト

  • Microsoft Forms
  • Power Automate
  • SharePointリスト
  • 添付ファイル列
  • トリガー
  • アクション
  • Parse JSON
  • 配列
  • Apply to each
  • Get file content
  • Add attachment
  • OneDrive
  • SharePoint