Googleフォームの回答データを編集する方法

Googleフォーム
スポンサーリンク

Googleフォームを回答してもらった後に、入力内容を間違えたので修正したいという声をもらいました。

管理画面のギアアイコンから回答後に編集可能になります。

この場合回答ユーザーしか、編集用のURLが分かりませんし、回答後の画面にリンクが表示されますが画面を閉じてしまうと後からURLを入手することが出来ません。

スポンサーリンク

Googleフォーム回答編集URLを取得する

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

下記のようになるイメージです。

Googleフォームの回答シートA列に1列追加します

Googleフォームの回答シートのA列に1列追加します。

下記のスクリプトを、回答シートのツール > スクリプトエディタから追加します。

シートのキーIDとは 赤色のXXXX部分です
//docs.google.com/spreadsheets/d/XXXXXXXXXXXXXXXXXXXXXXXXX/edit#gid=0
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が記載されます。

この方法は作成時に最初から設定していた場合です。すでに作成終えてある程度データが溜まっている場合は、以下の方法で対応可能です。

後からGoogleフォームの回答編集用URLを取得

先程の方法は1件ずつ取得して、挿入していく方法でした。下記のスクリプトであれば一度に取得可能です。

シートのキーIDとは 赤色のXXXX部分です
//docs.google.com/spreadsheets/d/XXXXXXXXXXXXXXXXXXXXXXXXX/edit#gid=0

フォームIDとは 赤色のXXXX部分です
//docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXXXXX/viewform

function SubmitMail(e){

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

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

//2_回答シートを取得
var sheetDates = SS.getDataRange();

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

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


for(var i = 0;i<formDates.length;i++){

//A列にデータが入っていたらスキップ
if(sheetDates.getCell(i+2, 1).getValue() != ""){
continue;
}

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

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

//7_回答用URLをAセルへ挿入
sheetDates.getCell(i+2, 1).setValue(EditableStr);
}
}

Googleフォーム回答編集URLの使い方

編集用URLをクリックし、編集フォームで書き換えます。

書き換えを行うと、下記のように自動でメモもつけてくれます。

 

 

タイトルとURLをコピーしました