Googleフォームを回答してもらった後に、入力内容を間違えたので修正したいという声をもらいました。
管理画面のギアアイコンから回答後に編集可能になります。
この場合回答ユーザーしか、編集用のURLが分かりませんし、回答後の画面にリンクが表示されますが画面を閉じてしまうと後からURLを入手することが出来ません。
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が記載されます。
この方法は作成時に最初から設定していた場合です。すでに作成終えてある程度データが溜まっている場合は、以下の方法で対応可能です。
後からGoogleフォームの回答編集用URLを取得
先程の方法は1件ずつ取得して、挿入していく方法でした。下記のスクリプトであれば一度に取得可能です。
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をクリックし、編集フォームで書き換えます。
書き換えを行うと、下記のように自動でメモもつけてくれます。