回答編集履歴

7

 

2022/04/08 00:26

投稿

退会済みユーザー
test CHANGED
@@ -30,7 +30,7 @@
30
30
  に書いてある内容をかいつまんで意訳すると
31
31
 
32
32
  ①記述式、日付、時刻、段落 タイプの答えが省略されている場合  
33
- ->  空文字('')が配列の要素として格納される。
33
+ ->  答えが空文字('')として格納される。
34
34
 
35
35
  ②上記以外のタイプ(ラジオボタン、プルダウン、ファイルアップロード等)の答えが省略されている場合
36
36
  ->  そもそも getItemResponses() が返す配列に、何も格納されません。(スキップ)

6

 

2022/04/08 00:24

投稿

退会済みユーザー
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

 

2022/04/07 08:20

投稿

退会済みユーザー
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

 

2022/04/07 06:04

投稿

退会済みユーザー
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

 

2022/04/07 06:00

投稿

退会済みユーザー
test CHANGED
@@ -15,11 +15,11 @@
15
15
  ・`response.getTimestamp()`は正常に動作している。
16
16
  ・ responses.length = 1 なので回答は存在する(1個)
17
17
  ・const resItems = response.getItemResponses();
18
-  で resItems が `null` になっているため、
18
+  で resItems が 空配列([ ]) になっているため、
19
19
   resMap[resItems[0].getResponse()]
20
-  の「resItems[0].getResponse()の部分で `undefined`となエラーが発生しています。
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

 

2022/04/07 05:58

投稿

退会済みユーザー
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

修正

2022/04/07 05:54

投稿

退会済みユーザー
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
+