sheet ข้อสอบ https://docs.google.com/spreadsheets/d/1_PQExpNMRu6ATNiLA_j96r_SrqieUzsIcPV-F-nzanA/edit?usp=sharing

//สร้าง folder เปล่า ใน drive 1 folder

//สร้าง sheet ตามรูปแบบ ลิงก์ที่แนบ และเพิ่มการแก้ไขสคริปต์

var myFolder = DriveApp.getFolderById('1UPaYjSyOALVNXDROYZjAohBXxzngJuRS'); // <<====== ID ของโฟลเดอร์ที่ เก็บ เท็มเพลต ข้อสอบ

var form_id = '1qGsu3bEXcJWkqV_ObZUgSRYryEZtbFN7ed_BhL7bZ58' // << สร้าง form ข้อสอบ และ เอา ID ของข้อสอบ ต้นฉบับ มาวาง

//--------------------------------------------------------------------------

var destinationFolder = '1VZDcPb4Sboe6AeSybO3-qNGPr-K9myI-'; // <<========= ID ของโฟลเดอร์ ที่ต้องการเก็บชุดข้อสอบ

var formName = 'แบบทดสอบคำศัพท์ ป.2 ชุดที่ 1'; // <<=========== ชื่อข้อสอบ

var items_score = 1;

//--------------------------------------------------------------------------

var question_req = 0;

function onOpen() {

SpreadsheetApp.getUi()

.createMenu('สร้างข้อสอบ Random')

.addItem('จำนวนข้อสอบที่ต้องการ', 'showPrompt')

.addToUi();

}

function showPrompt() {

var ui = SpreadsheetApp.getUi();

var result = ui.prompt(

'โปรดระบุจำนวนข้อสอบที่เราต้องการ ',

'ไม่ควรเกินขจำนวนข้อสอบในคลัง',

ui.ButtonSet.OK_CANCEL);

// Process the user's response.

var button = result.getSelectedButton();

question_req = result.getResponseText();

if (button == ui.Button.OK) {

// User clicked "OK".

ui.alert('กดปุ่มตกลงเพื่อเริ่มสร้างข้อสอบให้คุณ \n โปรดตรวจสอบข้อสอบที่ folder ปลายทาง ใน drive ของท่าน');

random_quiz()

} else if (button == ui.Button.CANCEL) {

// User clicked "Cancel".

ui.alert('ยกเลิกแล้ว');

} else if (button == ui.Button.CLOSE) {

// User clicked X in the title bar.

ui.alert('ปิดเมนู');

}

}

function random_quiz() {

var r;

var c;

var ans;

var item;

var content;

var choices =[];

var nchoices;

var correct;

var iscorrect;

var emailTo = [];

var question_num;

var quiz_bank_folder_id = myFolder.getId()

var form = DriveApp.getFileById(form_id).makeCopy(formName)

var id_copy_form = form.getId()

DriveApp.getFolderById(destinationFolder).addFile(form);

DriveApp.getFolderById(quiz_bank_folder_id).removeFile(form);

var form_quiz = FormApp.openById(id_copy_form);

var ss = SpreadsheetApp.getActive()

var sheet = ss.getSheets()[0];

question_num = sheet.getLastRow() - 1;

if(question_req>question_num) {

question_req=question_num;

}

var index = add_questions(question_num,question_req);

for(r = 0; r<question_req ; r++){

item = form_quiz.addMultipleChoiceItem();

item.setPoints(items_score);

content = sheet.getRange(index[r]+1,2).getValue();

item.setTitle(content);

nchoices = sheet.getRange(index[r]+1,3).getValue();

correct = sheet.getRange(index[r]+1,4).getValue();

for(c = 1; c<nchoices+1;c++){

iscorrect = (c==correct);

content = sheet.getRange(index[r]+1,c+4).getValue();

choices[c-1] = item.createChoice(content,iscorrect);

}

item.setChoices(choices);

}

Logger.log('สร้างข้อสอบเรียบร้อยแล้ว')

}

// ===========

function add_questions(question_num, question_req){

var index = [];

var ilist = [];

var i;

var n;

// ==========

for (i = 0; i < question_num; i++) {

ilist[i]=i+1;

}

// ========== สุ่มข้อ

i = 0;

while(i<question_req){

n = Math.floor(Math.random() * (question_num-1));

if(ilist[n]==n+1){

index[i]=n+1;

ilist[n]=-1;

i++;

}

}

return index;

}