teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

画像追加しました

2021/06/07 00:49

投稿

KoTT
KoTT

スコア19

title CHANGED
File without changes
body CHANGED
@@ -39,4 +39,14 @@
39
39
  sheetDates.getCell(i+2, 1).setValue(EditableStr);
40
40
  }
41
41
  }
42
- ```
42
+ ```
43
+
44
+ イメージ
45
+ Before : フォームから回答を取得。A2にハイパーリンクが入る。
46
+ ![イメージ説明](b73a2c05994c6c30af02b5915d80294d.jpeg)
47
+
48
+
49
+ After : スプレッドシートA2のリンクを別名保存してA3コピー&ペーストし、フォームを開いて回答結果を入力。
50
+ ![イメージ説明](4fd844ba6d44ca356cca56fa733a5b85.jpeg)
51
+
52
+ 機能の目的:フォームで取得した過去の回答結果を流用して新しい回答を作成したい。理由は、設問数が多く、その5割程度は前回と同じ回答が多いためです。

1

質問内容を修正しました

2021/06/07 00:48

投稿

KoTT
KoTT

スコア19

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,42 @@
1
1
  回答結果(入力済)を複製して、新しい回答に使うことはできないのでしょうか?
2
2
 
3
3
  左記を参考にさせいていただき、`https://liapoc.com/googleform-edit.html`
4
- 回答結果が出力されるスプレッドシートに回答編集用URLを追加することができたのですが、
4
+ 回答結果が出力されるスプレッドシートのA列(0番目の列)に回答編集用URLが自動入力されるようにでまし
5
- このハイパリンクをコピーて、いハイパーリンクを生成する・・・といった挙動ができないかと思いまして、、GASの機能になさそうなの、不可能でしょうか??
5
+ 加えて、このスプレッドシトの"回答編集用URL"をコピーする"という挙動にあわせて、回答結果は維持たまま、IDの異なる別の回答を生成する・・・といったことはできないでしょうか
6
+ ```javascript
7
+ function SubmitMail(e){
8
+
9
+ var sheetId = 'シートのキーID';
10
+ var sheetName = 'シートの名前';
11
+
12
+ //1_フォームの回答シートを取得
13
+ var SS = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName);
14
+
15
+ //2_回答シートを取得
16
+ var sheetDates = SS.getDataRange();
17
+
18
+ //3_フォームIDを保存
19
+ var formid = 'フォームID';
20
+
21
+ //4_回答データ一覧をフォームから取得
22
+ var formDates = FormApp.openById(formid).getResponses();
23
+
24
+
25
+ for(var i = 0;i<formDates.length;i++){
26
+
27
+ //A列にデータが入っていたらスキップ
28
+ if(sheetDates.getCell(i+2, 1).getValue() != ""){
29
+ continue;
30
+ }
31
+
32
+ //5_回答データ一覧をフォームから一番最後の編集用URL取得
33
+ var EditableUrl = formDates[Number(i)].getEditResponseUrl();
34
+
35
+ //6_回答用URLを作成
36
+ var EditableStr = '=HYPERLINK("' + EditableUrl + '","編集用URL.' + Number(i+1) + '")';
37
+
38
+ //7_回答用URLをAセルへ挿入
39
+ sheetDates.getCell(i+2, 1).setValue(EditableStr);
40
+ }
41
+ }
42
+ ```