質問編集履歴

2

正しいないように修正しました。質問分は正しく機能しました

2020/04/23 13:44

投稿

2kidding
2kidding

スコア1

test CHANGED
File without changes
test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
 
24
24
 
25
- function getTitle() {
25
+ function getTitle() {
26
26
 
27
27
  return SpreadsheetApp.getActiveSheet().getRange("A1").getValue();
28
28
 
@@ -86,7 +86,7 @@
86
86
 
87
87
 
88
88
 
89
- var item = form.addCheckboxItem();
89
+ var item = form.addMultipleChoiceItem();
90
90
 
91
91
 
92
92
 
@@ -148,7 +148,7 @@
148
148
 
149
149
  }
150
150
 
151
- この状態でラジオボタンの問題を作成することには成功しましたが、Aの列に記入している問題を質問の部分に記入させたいのに選択肢として記入されてしまいます。
151
+
152
152
 
153
153
  全て必須問題で各1点で回答もつけたいのですが、回答をどう範囲選択すればよいのかいまいちわかりません。
154
154
 

1

実行することができましたが、新たな問題が発生したため更新しました

2020/04/23 13:44

投稿

2kidding
2kidding

スコア1

test CHANGED
File without changes
test CHANGED
@@ -18,56 +18,140 @@
18
18
 
19
19
 
20
20
 
21
- スプレッドシートにはA1にタイトルA2に概要B2~B100まで問題文となる問題番号を記入しています。
21
+ スプレッドシートにはA1にタイトルA2に概要A5~G241まで問題文と選択肢を記入しています。
22
22
 
23
23
 
24
24
 
25
- function myFunction() {
25
+ function getTitle() {
26
26
 
27
- FormApp.create('セミナー')
27
+ return SpreadsheetApp.getActiveSheet().getRange("A1").getValue();
28
28
 
29
- var form = FormApp.create('セミナー')
29
+ }
30
30
 
31
- const ss = SpreadsheetApp.getActiveSpreadsheet()
32
31
 
33
- var data = SpreadsheetApp.getSheet("セミナー").getRange(1,100).getValues();
34
32
 
35
- const formTitle = values[0][1]; //タイトル
36
33
 
37
- const formDescription = values[1][1]; //概要
38
34
 
39
- form.setIsQuiz(true)
35
+ function getDescription() {
40
36
 
41
- form.setShowLinkToRespondAgain(true)
37
+ return SpreadsheetApp.getActiveSheet().getRange("A2").getValue();
42
38
 
43
- form.addTextItem().setTitle('氏名').setRequired(true);
39
+ }
44
40
 
45
- form.addMultipleChoiceItem()
46
41
 
47
- .setTitle(generateArray(dataValues, 1))
48
42
 
49
- .setChoiceValues(['1', '2','3','4','5'])
50
43
 
44
+
45
+ function getQA(startRow, startCol) {
46
+
47
+
48
+
49
+ var sheet = SpreadsheetApp.getActiveSheet();
50
+
51
+
52
+
53
+ var rows = sheet.getLastRow();
54
+
55
+ var cols = sheet.getLastColumn();
56
+
57
+
58
+
59
+ return sheet.getRange(startRow, startCol, rows - startRow + 1, cols - startCol + 1).getValues();
60
+
61
+
62
+
63
+ }
64
+
65
+
66
+
67
+
68
+
69
+ function createForm(title, description, data) {
70
+
71
+
72
+
73
+ var form = FormApp.create(title);
74
+
75
+
76
+
77
+ form.setDescription(description);
78
+
79
+
80
+
81
+ for (var i = 0 ; i < data.length ; i++) {
82
+
83
+
84
+
85
+ var qa = data[i];
86
+
87
+
88
+
89
+ var item = form.addCheckboxItem();
90
+
91
+
92
+
93
+ item.setTitle(qa[0]);
94
+
95
+
96
+
97
+ var choices = [];
98
+
99
+ for (var j = 1 ; j < qa.length ; j++) {
100
+
101
+
102
+
103
+ choices.push(item.createChoice(qa[j]));
104
+
105
+ }
106
+
107
+
108
+
51
- .setRequired(true);
109
+ item.setChoices(choices);
110
+
111
+
52
112
 
53
113
  }
54
114
 
55
- 実行してもフォームが作成されるだけで何も起こりません。
115
+
56
116
 
57
- スプレッドシートから情報を取り出してくる範囲選択とそれを繰り返す方法が全くわかりません。
117
+ return form;
58
118
 
59
- https://developers.google.com/apps-script/reference/forms/#form
119
+ }
60
120
 
61
- このサイトと、複数のネットの情報を参考に作成してきました。
62
121
 
63
- 多次元配列の変数あたりからちんぷんかんぷんになりました。
64
122
 
65
- 分かりやすいサイトとして
66
123
 
67
- "Google Apps Script(GAS)入門|エクセルの神髄"
68
124
 
69
- https://excel-ubara.com/apps_script1/を言われたのですが、専門用語が頻発するため理解が及びません。
125
+ function run() {
70
126
 
71
- 参考になる本や、アドバイスなどをいただきたいです。
127
+
72
128
 
129
+ var form = createForm(getTitle(), getDescription(), getQA(5,1));
130
+
131
+
132
+
133
+ Logger.log('Published URL: ' + form.getPublishedUrl());
134
+
135
+ Logger.log('Editor URL: ' + form.getEditUrl());
136
+
137
+
138
+
139
+ }
140
+
141
+
142
+
143
+
144
+
145
+ function test() {
146
+
147
+ Logger.log(getQA(5,1));
148
+
149
+ }
150
+
151
+ この状態でラジオボタンの問題を作成することには成功しましたが、Aの列に記入している問題を質問の部分に記入させたいのに選択肢として記入されてしまいます。
152
+
153
+ 全て必須問題で各1点で回答もつけたいのですが、回答をどう範囲選択すればよいのかいまいちわかりません。
154
+
73
- よろしくお願いたます。
155
+ どのうなとこを参考にすれればよょうか?
156
+
157
+ フォームテストの内容について書かれているサイトや文献、アドバイス等ありましたら教えて下さい