回答編集履歴
7
test
CHANGED
@@ -30,7 +30,7 @@
|
|
30
30
|
に書いてある内容をかいつまんで意訳すると
|
31
31
|
|
32
32
|
①記述式、日付、時刻、段落 タイプの答えが省略されている場合
|
33
|
-
-> 空文字('')
|
33
|
+
-> 答えが空文字('')として格納される。
|
34
34
|
|
35
35
|
②上記以外のタイプ(ラジオボタン、プルダウン、ファイルアップロード等)の答えが省略されている場合
|
36
36
|
-> そもそも getItemResponses() が返す配列に、何も格納されません。(スキップ)
|
6
test
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
ここで、response (= responses[0]) は、フォームの回答のうち一番最初に投稿されたものです。
|
23
23
|
|
24
24
|
resItems = response.getItemResponses() より
|
25
|
-
resItems は、「フォームの回答のうち一番最初に投稿された
|
25
|
+
resItems は、「フォームの回答のうち一番最初に投稿されたもの」の中の、**各質問と答えの組を格納した配列**になります。
|
26
26
|
|
27
27
|
ただし、getItemResponses() 関数は、「各質問に対する答え」が省略されている場合、下記のような動作になります。
|
28
28
|
|
5
test
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
resItems = response.getItemResponses() より
|
25
25
|
resItems は、「フォームの回答のうち一番最初に投稿された回答」の中の、**一連の質問に対する答えを格納した配列**になります。
|
26
26
|
|
27
|
-
ただし、getResponses() 関数は、「各質問に対する答え」が省略されている場合、下記のような動作になります。
|
27
|
+
ただし、getItemResponses() 関数は、「各質問に対する答え」が省略されている場合、下記のような動作になります。
|
28
28
|
|
29
29
|
https://developers.google.com/apps-script/reference/forms/form-response#getitemresponses
|
30
30
|
に書いてある内容をかいつまんで意訳すると
|
@@ -33,7 +33,7 @@
|
|
33
33
|
-> 空文字('')が配列の要素として格納される。
|
34
34
|
|
35
35
|
②上記以外のタイプ(ラジオボタン、プルダウン、ファイルアップロード等)の答えが省略されている場合
|
36
|
-
-> そもそも getResponses() が返す配列に、何も格納されません。(スキップ)
|
36
|
+
-> そもそも getItemResponses() が返す配列に、何も格納されません。(スキップ)
|
37
37
|
|
38
38
|
したがって、質問のような状況が起こりうる可能性として
|
39
39
|
|
4
test
CHANGED
@@ -22,24 +22,24 @@
|
|
22
22
|
ここで、response (= responses[0]) は、フォームの回答のうち一番最初に投稿されたものです。
|
23
23
|
|
24
24
|
resItems = response.getItemResponses() より
|
25
|
-
resItems は、「フォームの回答のうち一番最初に投稿された回答」の中の、**一連の
|
25
|
+
resItems は、「フォームの回答のうち一番最初に投稿された回答」の中の、**一連の質問に対する答えを格納した配列**になります。
|
26
26
|
|
27
|
-
ただし、getResponses() 関数は、
|
27
|
+
ただし、getResponses() 関数は、「各質問に対する答え」が省略されている場合、下記のような動作になります。
|
28
28
|
|
29
29
|
https://developers.google.com/apps-script/reference/forms/form-response#getitemresponses
|
30
30
|
に書いてある内容をかいつまんで意訳すると
|
31
31
|
|
32
|
-
①記述式、日付、時刻、段落 タイプの
|
32
|
+
①記述式、日付、時刻、段落 タイプの答えが省略されている場合
|
33
33
|
-> 空文字('')が配列の要素として格納される。
|
34
34
|
|
35
|
-
②上記以外のタイプ(ラジオボタン、プルダウン、ファイルアップロード等)の
|
35
|
+
②上記以外のタイプ(ラジオボタン、プルダウン、ファイルアップロード等)の答えが省略されている場合
|
36
36
|
-> そもそも getResponses() が返す配列に、何も格納されません。(スキップ)
|
37
37
|
|
38
38
|
したがって、質問のような状況が起こりうる可能性として
|
39
39
|
|
40
40
|
・フォームの質問がすべてラジオボタンやプルダウン等、上記②タイプの形式であり
|
41
|
-
・
|
41
|
+
・答えのデータをユーザーが編集可能な設定になっており、
|
42
|
-
・1個目の回答ユーザーが、後から
|
42
|
+
・1個目の回答ユーザーが、後から答えを変更して、それらの答えを削除(ラジオボタンであれば、選択解除して空欄に)してしまっている
|
43
43
|
|
44
44
|
といった状況が考えられます。
|
45
45
|
|
3
test
CHANGED
@@ -15,11 +15,11 @@
|
|
15
15
|
・`response.getTimestamp()`は正常に動作している。
|
16
16
|
・ responses.length = 1 なので回答は存在する(1個)
|
17
17
|
・const resItems = response.getItemResponses();
|
18
|
-
で resItems が
|
18
|
+
で resItems が 空配列([ ]) になっているため、
|
19
19
|
resMap[resItems[0].getResponse()]
|
20
|
-
の「resItems[0]
|
20
|
+
の「resItems[0]」が undefined となり、エラーが発生していると推測されます。
|
21
21
|
|
22
|
-
response (= responses[0]) は、フォームの回答のうち一番最初に投稿されたものです。
|
22
|
+
ここで、response (= responses[0]) は、フォームの回答のうち一番最初に投稿されたものです。
|
23
23
|
|
24
24
|
resItems = response.getItemResponses() より
|
25
25
|
resItems は、「フォームの回答のうち一番最初に投稿された回答」の中の、**一連の回答を格納した配列**になります。
|
2
test
CHANGED
@@ -24,20 +24,20 @@
|
|
24
24
|
resItems = response.getItemResponses() より
|
25
25
|
resItems は、「フォームの回答のうち一番最初に投稿された回答」の中の、**一連の回答を格納した配列**になります。
|
26
26
|
|
27
|
-
ただし、getResponses() 関数は、回答が省略されている場合、下記のような動作
|
27
|
+
ただし、getResponses() 関数は、回答が省略されている場合、下記のような動作になります。
|
28
28
|
|
29
29
|
https://developers.google.com/apps-script/reference/forms/form-response#getitemresponses
|
30
30
|
に書いてある内容をかいつまんで意訳すると
|
31
31
|
|
32
|
-
①記述式、日付、時刻、段落 タイプの回答が省略され
|
32
|
+
①記述式、日付、時刻、段落 タイプの回答が省略されている場合
|
33
33
|
-> 空文字('')が配列の要素として格納される。
|
34
34
|
|
35
35
|
②上記以外のタイプ(ラジオボタン、プルダウン、ファイルアップロード等)の回答が省略されている場合
|
36
|
-
-> そもそも getResponses() が返す配列に、何も格納され
|
36
|
+
-> そもそも getResponses() が返す配列に、何も格納されません。(スキップ)
|
37
37
|
|
38
38
|
したがって、質問のような状況が起こりうる可能性として
|
39
39
|
|
40
|
-
・フォームの質問
|
40
|
+
・フォームの質問がすべてラジオボタンやプルダウン等、上記②タイプの形式であり
|
41
41
|
・回答データをユーザーが編集可能な設定になっており、
|
42
42
|
・1個目の回答ユーザーが、後から回答を変更して、それらの回答を削除(正確には、選択解除)してしまっている
|
43
43
|
|
1
修正
test
CHANGED
@@ -1,2 +1,45 @@
|
|
1
|
-
フォーム送信時のトリガーが無効になっている(削除されている)可能性があります。
|
1
|
+
~~フォーム送信時のトリガーが無効になっている(削除されている)可能性があります。
|
2
|
-
スクリプトエディタ左サイドの時計マークから、トリガーが正常に設定されているか確認してみてはいかがでしょうか。
|
2
|
+
スクリプトエディタ左サイドの時計マークから、トリガーが正常に設定されているか確認してみてはいかがでしょうか~~。
|
3
|
+
|
4
|
+
すみません。勘違いでした。
|
5
|
+
|
6
|
+
|
7
|
+
下記のフォーム編集画面の「回答」→「個別」から、フォームの回答データを参照して、
|
8
|
+
1個目の回答データが全部選択解除されてしまっていないか、確認されてはいかがでしょうか。
|
9
|
+
|
10
|
+
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-04-07/18372215-00c2-4c63-a028-71cd42c01d30.png)
|
11
|
+
---
|
12
|
+
|
13
|
+
状況を整理すると
|
14
|
+
|
15
|
+
・`response.getTimestamp()`は正常に動作している。
|
16
|
+
・ responses.length = 1 なので回答は存在する(1個)
|
17
|
+
・const resItems = response.getItemResponses();
|
18
|
+
で resItems が `null` になっているため、
|
19
|
+
resMap[resItems[0].getResponse()]
|
20
|
+
の「resItems[0].getResponse()」の部分で `undefined`となるエラーが発生しています。
|
21
|
+
|
22
|
+
response (= responses[0]) は、フォームの回答のうち一番最初に投稿されたものです。
|
23
|
+
|
24
|
+
resItems = response.getItemResponses() より
|
25
|
+
resItems は、「フォームの回答のうち一番最初に投稿された回答」の中の、**一連の回答を格納した配列**になります。
|
26
|
+
|
27
|
+
ただし、getResponses() 関数は、回答が省略されている場合、下記のような動作をします。
|
28
|
+
|
29
|
+
https://developers.google.com/apps-script/reference/forms/form-response#getitemresponses
|
30
|
+
に書いてある内容をかいつまんで意訳すると
|
31
|
+
|
32
|
+
①記述式、日付、時刻、段落 タイプの回答が省略された場合
|
33
|
+
-> 空文字('')が配列の要素として格納される。
|
34
|
+
|
35
|
+
②上記以外のタイプ(ラジオボタン、プルダウン、ファイルアップロード等)の回答が省略されている場合
|
36
|
+
-> そもそも getResponses() が返す配列に、何も格納されていません。
|
37
|
+
|
38
|
+
したがって、質問のような状況が起こりうる可能性として
|
39
|
+
|
40
|
+
・フォームの質問はすべてラジオボタンやプルダウン等、上記②タイプの形式であり
|
41
|
+
・回答データをユーザーが編集可能な設定になっており、
|
42
|
+
・1個目の回答ユーザーが、後から回答を変更して、それらの回答を削除(正確には、選択解除)してしまっている
|
43
|
+
|
44
|
+
といった状況が考えられます。
|
45
|
+
|