回答編集履歴

2

2020/04/27 14:14

投稿

papinianus
papinianus

スコア12705

test CHANGED
@@ -52,4 +52,4 @@
52
52
 
53
53
 
54
54
 
55
- これだと 246 問作られるので、quizDat をシャッフルして先頭100個をとれば100点の問題が作れると思います。
55
+ これだと 236 問作られるので、quizDat をシャッフルして先頭100個をとれば100点の問題が作れると思います。

1

a

2020/04/27 14:14

投稿

papinianus
papinianus

スコア12705

test CHANGED
@@ -1 +1,55 @@
1
1
  今の質問の状態でできる回答は、[ドキュメント](https://developers.google.com/apps-script/reference/forms/form-app)を見てください、しかないです。
2
+
3
+
4
+
5
+ 解決しないし、コメントもないので、妄想で補足。
6
+
7
+
8
+
9
+ - form をテストにする
10
+
11
+ - 必須にし、1 点とする
12
+
13
+ - 5択で B-G列があるということは、 G 列は正解を表現するデータではないかと推測し、B-Fのうち G と同じものは正解とマーク
14
+
15
+
16
+
17
+ の対応を行いました。
18
+
19
+
20
+
21
+ ```javascript
22
+
23
+ const q255852 = () => {
24
+
25
+ const vals = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
26
+
27
+ const title = vals[0][0];
28
+
29
+ const description = vals[1][0];
30
+
31
+ const quizDat = vals.slice(4);
32
+
33
+ const form = createQuizForm(title,description);
34
+
35
+ quizDat.forEach(([n,...c])=> {
36
+
37
+ const t = c.slice(-1);
38
+
39
+ const item = form.addMultipleChoiceItem().setTitle(n).setRequired(true).setPoints(1);
40
+
41
+ const choices = c.slice(0,-1).map(e=>e===t?item.createChoice(e,true):item.createChoice(e,false));
42
+
43
+ item.setChoices(choices);
44
+
45
+ })
46
+
47
+ }
48
+
49
+ const createQuizForm = (title,description) => FormApp.create(title).setDescription(description).setIsQuiz(true);
50
+
51
+ ```
52
+
53
+
54
+
55
+ これだと 246 問作られるので、quizDat をシャッフルして先頭100個をとれば100点の問題が作れると思います。