業務で寄せられる質問や報告は、メールやチャットなど複数のチャネルから届くことが多く、情報の整理や対応漏れが発生しがちです。特に画像やファイル添付がある場合、管理が煩雑になります。
こうした課題を解決するために、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キャッチャーです。
担当記事一覧