回答編集履歴

7

 

2022/07/06 21:25

投稿

退会済みユーザー
test CHANGED
@@ -78,9 +78,9 @@
78
78
  }
79
79
  // スプレッドシート内にあるシートを1つ1つ調べ、そのシートのリンク元フォームのurlと、
80
80
  // 指定したフォームのurlが一致するか判定
81
+ var formUrl = form.getEditUrl().replace('/edit', '');
81
82
  var destinationSheet = spreadSheet.getSheets().find(sheet =>
82
- sheet.getFormUrl()?.replace('/viewform', '') === form.getEditUrl().replace('/edit', '')
83
+ sheet.getFormUrl()?.replace('/viewform', '') === formUrl);
83
- );
84
84
 
85
85
  if (destinationSheet == null) {
86
86
  console.log(`回答が設定されているシートが見つかりませんでした。`);

6

 

2022/07/06 21:22

投稿

退会済みユーザー
test CHANGED
@@ -59,13 +59,13 @@
59
59
  }
60
60
 
61
61
  /**
62
- * フォームの回答を収集しているシートを返す
62
+ * 指定したスプレッドシートの中から、指定したフォームの回答を収集しているシートを返す
63
63
  * 引数:
64
64
  * spreadSheet:回答収集シートを探す対象のスプレッドシートオブジェクト
65
65
  * form:対象となる回答を保持しているフォームオブジェクト
66
66
  *
67
67
  * 戻り値:フォームの回答を収集している最初のシートオブジェクト
68
- *  シートが見つからない場合、またはspreadSheet,formが指定されていない場合: undefined
68
+ *  該当するシートが見つからない場合、または spreadSheet, form が指定されていない場合: undefined
69
69
  */
70
70
  function getDestinationSheet_(spreadSheet, form) {
71
71
  if (spreadSheet == null) {

5

 

2022/07/06 13:02

投稿

退会済みユーザー
test CHANGED
@@ -79,7 +79,7 @@
79
79
  // スプレッドシート内にあるシートを1つ1つ調べ、そのシートのリンク元フォームのurlと、
80
80
  // 指定したフォームのurlが一致するか判定
81
81
  var destinationSheet = spreadSheet.getSheets().find(sheet =>
82
- sheet.getFormUrl()?.replace('/viewform', '') === form.getEditUrl()?.replace('/edit', '')
82
+ sheet.getFormUrl()?.replace('/viewform', '') === form.getEditUrl().replace('/edit', '')
83
83
  );
84
84
 
85
85
  if (destinationSheet == null) {

4

 

2022/07/06 13:01

投稿

退会済みユーザー
test CHANGED
@@ -76,6 +76,8 @@
76
76
  console.log(`引数 formにフォームIDが指定されていません`);
77
77
  return;
78
78
  }
79
+ // スプレッドシート内にあるシートを1つ1つ調べ、そのシートのリンク元フォームのurlと、
80
+ // 指定したフォームのurlが一致するか判定
79
81
  var destinationSheet = spreadSheet.getSheets().find(sheet =>
80
82
  sheet.getFormUrl()?.replace('/viewform', '') === form.getEditUrl()?.replace('/edit', '')
81
83
  );

3

 

2022/07/06 12:55

投稿

退会済みユーザー
test CHANGED
@@ -68,22 +68,21 @@
68
68
  *  シートが見つからない場合、またはspreadSheet,formが指定されていない場合: undefined
69
69
  */
70
70
  function getDestinationSheet_(spreadSheet, form) {
71
-
72
71
  if (spreadSheet == null) {
73
- console.log(`引数 spreadSheetにスプレッドシートIDが指定されていません`)
72
+ console.log(`引数 spreadSheetにスプレッドシートIDが指定されていません`);
74
- return
73
+ return;
75
74
  }
76
75
  if (form == null) {
77
- console.log(`引数 formにフォームIDが指定されていません`)
76
+ console.log(`引数 formにフォームIDが指定されていません`);
78
- return
77
+ return;
79
78
  }
80
79
  var destinationSheet = spreadSheet.getSheets().find(sheet =>
81
80
  sheet.getFormUrl()?.replace('/viewform', '') === form.getEditUrl()?.replace('/edit', '')
82
81
  );
83
82
 
84
83
  if (destinationSheet == null) {
85
- console.log(`回答が設定されているシートが見つかりませんでした。`)
84
+ console.log(`回答が設定されているシートが見つかりませんでした。`);
86
- return
85
+ return;
87
86
  }
88
87
  return destinationSheet;
89
88
  }

2

 

2022/07/06 12:54

投稿

退会済みユーザー
test CHANGED
@@ -73,8 +73,12 @@
73
73
  console.log(`引数 spreadSheetにスプレッドシートIDが指定されていません`)
74
74
  return
75
75
  }
76
+ if (form == null) {
77
+ console.log(`引数 formにフォームIDが指定されていません`)
78
+ return
79
+ }
76
80
  var destinationSheet = spreadSheet.getSheets().find(sheet =>
77
- sheet.getFormUrl()?.replace('/viewform', '') === form.getEditUrl().replace('/edit', '')
81
+ sheet.getFormUrl()?.replace('/viewform', '') === form.getEditUrl()?.replace('/edit', '')
78
82
  );
79
83
 
80
84
  if (destinationSheet == null) {

1

 

2022/07/06 12:52

投稿

退会済みユーザー
test CHANGED
@@ -4,7 +4,7 @@
4
4
  ①form.getDestinationId() で、そのフォームがリンクしているスプレッドシートのIDを取得可能。(フォーム→スプレッドシート)
5
5
  ②sheet.getFormUrl() で、そのシートがリンクされているフォームのURLを取得可能。(シート→フォーム)
6
6
 
7
- し①で取得できるのは、スプレッドシートIDだけで、そのスプレッドシート内のどのシートがリンクされているかはわかりません。
7
+ し①で取得できるのは、スプレッドシートIDだけで、そのスプレッドシート内のどのシートがリンクされているかはわかりません。
8
8
  そこで、スプレッドシートを特定した後、そのスプレッドシート内にあるシートを1つ1つ調べ、そのシートのリンク元フォームのurlと、指定したフォームのurlが一致するか判定します。
9
9
  一致した場合は、そのシートのシート名を変更します。
10
10
  (下記は2つの関数に分かれていますが2つセットで記述する必要があります。実行するのは1番目のresetAnswerSheetです)