Microsoft FormsにアップロードされたファイルをSharePoint Listに添付する方法

業務で寄せられる質問や報告は、メールやチャットなど複数のチャネルから届くことが多く、情報の整理や対応漏れが発生しがちです。特に画像やファイル添付がある場合、管理が煩雑になります。

こうした課題を解決するために、Formsで質問を受け付け、Power Automateで SharePoint Listに自動登録する仕組みを構築しました。

この記事では、Microsoft Forms、Power Automate、そして SharePoint Listを組み合わせて、質問受付から回答管理する方法を解説します。

※本文ではMicrosoft FormsをForms、Power AutomateをAutomate、SharePoint Listをリストと表現します。

この記事でできること

  • Forms内容をAutomateを利用してリストに保存する
  • Formsに添付された画像やファイルをリストに保存する
  • OneDriveに保存されたファイルをSharePointに保存する

Forms回答をリストに自動保存する方法

まず、質問内容や画像・ファイルを取得できるようにFormsを作成します。

次に、Automateを使って、Formsに回答が送信されたタイミングでリストに自動で登録するフローを構築します。

Forms作成

1.Formsにアクセスします。

2.新しいフォームを作成します。今回は、質問内容(テキスト)、画像/ファイル(ファイルアップロード)を登録しました。

※ファイルのアップロードを有効化すると、自動でOneDriveにアップロードフォルダが作成されます。

リスト作成

1.SharePointサイトにアクセスします。

2.左メニューで [サイトコンテンツ]をクリックし、[新規]→[リスト] を選択します。

3.今回は、リストに[質問内容]、[回答]の列を作成します。

なお、[添付ファイル] 列は既定で存在していますが、表示されていません。[すべてのアイテム]-[フィールドの追加または削除]-[添付ファイル] をオンにすることで表示されます。

Automate作成

全体像

作成するAutomateのフロー全体像は以下です。

このフローでは、Forms のファイルアップロード有無に応じて処理を分岐します。

ファイルがある場合は OneDrive から SharePoint に保存し、他のユーザー(管理者やチームメンバー)のアクセスを可能にします。ファイルがない場合はSharepointリストへの登録のみを行います。

詳細設定

1.Automateにアクセスし、[新しい応答が送信されるとき]を追加します。[フォームID]には「Forms作成の手順2」で作成したFormsを設定します。

2.[応答の詳細を取得する]を追加します。

3.[変数を初期化する]を追加し、ファイル数を格納する変数を用意します。

4.[変数の設定]を追加し、以下の内容で設定します。

  • [名前]:「本節の手順3」で作成した変数をプルダウンから選択
  • [値]:次の項番で説明

5.[変数の設定]の[値]設定方法は、まず[fx]をクリックします。

6.以下の式を挿入します。赤字箇所は[動的コンテンツ]-[応答の詳細を取得する]の画像/ファイル項目を選択します。

length(outputs('応答の詳細を取得する')?['body/XXX'])

7.コントロールの[条件]を追加します。Formsで画像やファイルが添付されていたかどうかを確認し、添付された場合と添付されていない場合でフローを分けます。

8.[項目の作成]を追加します。添付ファイルの有無にかかわらず、質問内容はリストに保存する必要があるため、True(添付あり)・False(添付なし)には同じ内容を設定します。

※ 今回、リストの質問内容に入れる値に式を挿入している理由は、SharePoint リストの「テキスト」に255 文字の制限があるためです。本記事では、この制限に対応するため、式を使って文字列を切り詰めています。

[質問内容]の設定方法は、まず[fx]をクリックします。

以下の式を挿入します。赤字箇所は[動的コンテンツ]-[応答の詳細を取得する]の質問内容項目を選択します。

 substring(
  coalesce(outputs('応答の詳細を取得する')?['body/XXX'], ''),
  0,
  min(length(coalesce(outputs('応答の詳細を取得する')?['body/XXX'], '')), 255)
)

次の項番から、「True」(画像やファイルが添付されている場合)のみに適用する設定です。

9.[JSON の解析]を追加し、以下の内容を入力します。このスキーマはFormsのファイルアップロード形式に対応しています。

 {
    "type": "array",
    "items": {
        "type": "object",
        "properties": {
            "name": {
                "type": "string"
            },
            "link": {
                "type": "string"
            },
            "id": {
                "type": "string"
            },
            "type": {},
            "size": {
                "type": "integer"
            },
            "referenceId": {
                "type": "string"
            },
            "driveId": {
                "type": "string"
            },
            "status": {
                "type": "integer"
            },
            "uploadSessionUrl": {}
        },
        "required": [
            "name",
            "link",
            "id",
            "type",
            "size",
            "referenceId",
            "driveId",
            "status",
            "uploadSessionUrl"
        ]
    }
}

10.コントロールの[それぞれに適用する]を追加します。「本節の手順9」で追加した[JSON の解析]の本文を設定します。

11.データ操作の[作成]を追加します。入力には、前[JSON の解析]のBodyNameを設定します。

12.[パスによるファイルメタデータの取得]を追加します。ファイルパスには、Formsにアップロードされた場所(フォルダ)を指定します。ファイル名は都度変わるため、「本節の手順11」で追加した[作成]の本文を"/"で繋げます。

13.[ファイルコンテンツの取得]を追加します。ファイルには、「本節の手順12」で追加した[パスによるファイルメタデータの取得]のIDを設定します。

14.[ファイルの作成]を追加し、以下の内容で設定します。

  • サイトのアドレス:ファイルを配置する場所を設定
  • フォルダーのパス:ファイルを配置する場所を設定
  • ファイル名:[作成]の本文を設定
  • ファイルコンテンツ:「本節の手順13」で追加した[ファイルコンテンツの取得]の本文を設定

15.[ファイルのプロパティの更新]を追加し、以下の内容で設定します。

  • サイトのアドレス:ファイルを配置した場所を設定
  • ライブラリ名:ファイルを配置した場所を設定
  • ID:「本節の手順14」で追加した[ファイルの作成]のbody/ItemIdを設定

16.[ファイルコンテンツの取得]を追加し、以下の内容で設定します。

  • サイトのアドレス:ファイルを配置した場所を設定
  • ファイルの識別子:「本節の手順15」で追加した[ファイルのプロパティの更新]の識別子を設定

17.[添付ファイルの追加]を選択し、以下の内容で設定します。

  • サイトのアドレス:ファイルを配置した場所を設定
  • リスト名:対象リストを選択
  • ID:[項目の作成]のIDを設定
  • ファイル名:[ファイルのプロパティの更新]の拡張子付きのファイル名を設定
  • ファイルのコンテンツ:[ファイルコンテンツの取得]の本文を設定

以上でAutomateの設定は完了です。

実際の挙動

実際にFormsにてファイル(資料や画像)を送信すると、Automateが正しく動作して、リストに反映されるかを確認します。

1.Formsを送信します。

2.Automateが動作し、Formsの質問内容がSharePointリストに反映されていることを確認します。添付ファイルが送信された場合は、添付ファイル列に[クリップマーク]が表示されます。

3.添付ファイル付きのリストをクリックすると、添付ファイルや画像が表示されることを確認します。

まとめ

Forms、Automate、リストを連携させることで、質問受付から回答管理までのプロセスを自動化できます。

特に添付ファイルがある場合は、OneDriveからSharePointへの移動処理を組み込むことで、共有性と運用性を高めることが可能です。

業務の効率化や情報管理の改善に役立つので、ぜひ一度試してみてください。

執筆担当者プロフィール
吉武 成美

吉武 成美(日本ビジネスシステムズ株式会社)

2022年度新卒入社。Microsoft 365 製品(Intune)などのクラウド及びオンプレミスを担当しています。趣味はドライブとUFOキャッチャーです。

担当記事一覧