前提・実現したいこと
初心者です。
GASを使ってスプレッドシートからフォームを作成しています。
作成しているフォームはテスト問題です。
問題の中には選択肢が1つの場合と2つの場合があり、
前者は作れたのですが、後者がうまくいきません…
GASコードで「2つ選べ。」の問題を採点できるよう設定したいです。
問題数が100問以上ある中でランダムに上記のような問題があるので、自動に設定できるようにしたいです。
webから情報を探しながら作っている状態なので、基本的な知識がなく困っております。
どなたかご教示頂きたいと思います。よろしくお願い致します。
###スプレッドシートの詳細
C列:C3以降、問題番号
D列:D3以降、問題文
E〜H列:3行目以降、選択肢
I列:I3以降、模範解答
J列:J3以降、フィードバック(解説)
K列:K3以降、得点
発生している問題・エラーメッセージ
作成したgoogleフォーム上、「2つ選べ。」の問題の採点結果が「正解がありません」と表示されます。
該当のソースコード
function Makeform() {
var ActiveSheet = SpreadsheetApp.getActiveSheet();
var lastRow = ActiveSheet.getLastRow();
var lastColumn = ActiveSheet.getLastColumn();
var QQlist = [];
QQlist = ActiveSheet.getRange(3,4,lastRow-2,lastColumn-1).getValues();
Logger.log(QQlist);
var formTitle = ActiveSheet.getRange(1,5).getValue();
var form = FormApp.create(formTitle);
form.setIsQuiz(true);
for(var i = 0;i<QQlist.length;i++){
var choices;
var item = form.addCheckboxItem();
choices=[
item.createChoice(QQlist[i][1],QQlist[i][5]==1),
item.createChoice(QQlist[i][2],QQlist[i][5]==2),
item.createChoice(QQlist[i][3],QQlist[i][5]==3),
item.createChoice(QQlist[i][4],QQlist[i][5]==4),
];
Logger.log(choices);
item.setTitle([QQlist[i][0]]);
item.setChoices(choices);
item.setPoints(QQlist[i][7]);
item.setRequired(true);
item.setFeedbackForCorrect(FormApp.createFeedback().setText(QQlist[i][6]).build());
item.setFeedbackForIncorrect(FormApp.createFeedback().setText(QQlist[i][6]).build());
}
}
試したこと
似たような案件がないか調べてみましたが、該当するようなものは見つかりませんでした…
分からないなりにコードを書き換えたりもしましたが、実行できず終わりました。
あなたの回答
tips
プレビュー