2019年9月27日金曜日

Googleフォーム編集用URLをスプレッドシートの回答に追加する


Googleフォーム回答編集URLを取得して、回答データに追記する方法です。

Googleフォームの回答シートA列に1列追加します
Googleフォームの回答シートのA列に1列追加します。
下記のスクリプトを、回答シートのツール > スクリプトエディタから追加します。
function SubmitMail(e){

var sheetId = 'シートのキーID';
var sheetName = 'シートの名前';

//1_フォームの回答シートを取得
var SS = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName);


//2_最終行を取得
var sheetDates = SS.getDataRange();
var lastRow = sheetDates.getLastRow();
var lastRowA = sheetDates.getCell(lastRow, 1);


//3_最終行のA列にデータが入っていたら終了
if(lastRowA.getValue() != ""){
Logger.log("上書き防止のため終了");
return 0;
}


//4_フォームIDを保存
var formid = 'フォームID';

//5_回答データ一覧をフォームから取得
var formDates = FormApp.openById(formid).getResponses();

//6_回答データ一覧をフォームから一番最後の編集用URL取得
var EditableUrl = formDates[Number(formDates.length - 1)].getEditResponseUrl();

//7_回答用URLを作成
var EditableStr = '=HYPERLINK("' + EditableUrl + '","編集用URL.' + Number(lastRow - 1) + '")';

//8_回答用URLを最終のAセルへ実装
lastRowA.setValue(EditableStr);
}
トリガーをフォーム送信
トリガーをフォーム送信にすれば、フォームが送信されるたびに、A列へ編集用URLが記載されます。
この方法は作成時に最初から設定していた場合です。すでに作成終えてある程度データが溜まっている場合は、以下の方法で対応可能です。

※注意
送信後に編集できるように管理画面のギアアイコンから回答後に編集可能にしておいてください。

0 件のコメント:

コメントを投稿