回答編集履歴
7
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
|
83
|
+
sheet.getFormUrl()?.replace('/viewform', '') === formUrl);
|
83
|
-
);
|
84
84
|
|
85
85
|
if (destinationSheet == null) {
|
86
86
|
console.log(`回答が設定されているシートが見つかりませんでした。`);
|
6
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
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()
|
82
|
+
sheet.getFormUrl()?.replace('/viewform', '') === form.getEditUrl().replace('/edit', '')
|
83
83
|
);
|
84
84
|
|
85
85
|
if (destinationSheet == null) {
|
4
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
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
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
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
①form.getDestinationId() で、そのフォームがリンクしているスプレッドシートのIDを取得可能。(フォーム→スプレッドシート)
|
5
5
|
②sheet.getFormUrl() で、そのシートがリンクされているフォームのURLを取得可能。(シート→フォーム)
|
6
6
|
|
7
|
-
た
|
7
|
+
ただし①で取得できるのは、スプレッドシートIDだけで、そのスプレッドシート内のどのシートがリンクされているかはわかりません。
|
8
8
|
そこで、スプレッドシートを特定した後、そのスプレッドシート内にあるシートを1つ1つ調べ、そのシートのリンク元フォームのurlと、指定したフォームのurlが一致するか判定します。
|
9
9
|
一致した場合は、そのシートのシート名を変更します。
|
10
10
|
(下記は2つの関数に分かれていますが2つセットで記述する必要があります。実行するのは1番目のresetAnswerSheetです)
|