やりたいこと
複数のFormの回答を一括でファイルとしてエクスポートしたい。
Formsからフォームを作成した場合、エクセルファイルは1つずつダウンロードしなければいけない。また、フォームの回答がトリガーとなるコネクタがあるが、クイズの点数を参照することができない。
また、エクセル経由でフォームを作成した場合、通常のアンケートは作成できるが、クイズ形式では作成することができない。
ゆえにForm APIを利用してファイルの情報を一括で取得する。
フロー定義
全体像
変数定義
// formのid と出力先ファイル名の連想配列
formList =
[
{
"formId": "hZAhgCspL0mUkN1CBLEpkQwKNEdKkLBBvXWIKo48aSJUOFZENE9KWEdRTlNWS1ZUUUlUVFVRTjk0NC4u",
"exportFileName": "ファンタジア"
},
{
"formId": "hZAhgCspL0mUkN1CBLEpkQwKNEdKkLBBvXWIKo48aSJURTlXMFNQOTZMUlFCMFJJRTkyVEI5NExQVi4u",
"exportFileName": "エターニア"
},
{
"formId": "hZAhgCspL0mUkN1CBLEpkQwKNEdKkLBBvXWIKo48aSJUNkMxTjdFVzJONVFIRk1YRkFEVDI5NE5BNi4u",
"exportFileName": "シンフォニア"
}
];
formURL = "https://forms.office.com";
formId = "";
// Share Point サイトのURL
workSharePointSite = "★★";
workDirectory = "Shared Documents/集計/";
workFilePath = "";
isExistsFile = "";
既存ファイルの削除_事前準備
恐ろしいことにpower automateに「ファイルが存在するか」のコネクタが存在しないため、Share Point REST APIを利用する必要がある。
既存ファイルの削除_存在チェック
// ファイルが存在していれば必ずGUIDというキーが存在する。
// キーの有無でファイルの有無を確認している。
isExistsFile = @{not(empty(outputs('HTTP通信_ファイルのメタデータを取得')?['body']?['d']?['GUID']))}
既存ファイルの削除_削除処理
ファイルが存在していれば、その削除を行う。
クイズ情報の一括取得
メタデータの方で回答件数を、全量データの方でデータを取得している。
rowCount = @{body('HTTP通信_フォームのメタデータを取得')?['rowCount']}
取得したデータをそのままファイルとして保存する。






