Một cửa số mới hiện ra, chúng ta xoá toàn bộ nội dung hiện có, và nhập toàn bộ mã lệnh dưới đây vào vùng soạn thảo mã lệnh trong tệp Code.gs
Cuối cùng nhấn nút Save. Như vậy chúng ta đã nạp xong phần mã lệnh vào biểu mẫu của mình
Để các lệnh này hoạt động, chúng ta cần chọn hàm onOpen, sau nó nhấn lệnh Run. Việc tiếp theo là xác nhận các cấp phép cho mã lệnh vừa tạo.
Mọi người có thể điều chỉnh lại các lệnh sao cho phù hợp với yêu cầu của mình nhé
Mã: Chọn tất cả
function onOpen() {
var menu = FormApp.getUi().createMenu('My Menu');
menu.addItem('Sub-Menu 1 (Clear)', 'MyFunction1').addToUi();
menu.addItem('Sub-Menu 2 (All)', 'MyFunction2').addToUi();
menu.addItem('Sub-Menu 3 (Multiple choice)', 'MyFunction3').addToUi();
menu.addItem('Sub-Menu 4 (Multiple choice navigation)', 'MyFunction4').addToUi();
menu.addItem('Sub-Menu 5 (List)', 'MyFunction5').addToUi();
menu.addItem('Sub-Menu 6 (Checkbox)', 'MyFunction6').addToUi();
menu.addItem('Sub-Menu 7 (Grid)', 'MyFunction7').addToUi();
menu.addItem('Sub-Menu 8 (Checkbox grid)', 'MyFunction8').addToUi();
menu.addItem('Sub-Menu 9 (Text)', 'MyFunction9').addToUi();
menu.addItem('Sub-Menu 10 (Paragraph text)', 'MyFunction10').addToUi();
menu.addItem('Sub-Menu 11 (Scale)', 'MyFunction11').addToUi();
menu.addItem('Sub-Menu 12 (Time)', 'MyFunction12').addToUi();
menu.addItem('Sub-Menu 13 (Date)', 'MyFunction13').addToUi();
menu.addItem('Sub-Menu 14 (Image)', 'MyFunction14').addToUi();
menu.addItem('Sub-Menu 15 (Video)', 'MyFunction15').addToUi();
menu.addItem('Sub-Menu 16 (Section header)', 'MyFunction16').addToUi();
menu.addItem('Sub-Menu 17 (Page break)', 'MyFunction17').addToUi();
}
function MyFunction1() {
/*
var fm = FormApp.create('My Form');
var id = fm.getId();
var f = FormApp.openById(id);
*/
var f = FormApp.getActiveForm();
var ur = f.getPublishedUrl();
f.setTitle('My Form');
f.setDescription(ur);
f.setIsQuiz(true);
var fi = f.getItems();
for (var i = 0; i < fi.length; i += 1) {
f.deleteItem(fi[i]);
}
};
function MyFunction2() {
MyFunction3();
MyFunction4();
MyFunction5();
MyFunction6();
MyFunction7();
MyFunction8();
MyFunction9();
MyFunction10();
MyFunction11();
MyFunction12();
MyFunction13();
MyFunction14();
MyFunction15();
MyFunction16();
MyFunction17();
}
function MyFunction3() {
var f = FormApp.getActiveForm();
var arr = [];
var q = f.addMultipleChoiceItem();
q.setTitle('Multiple choice title').setHelpText('Multiple choice help text').setRequired(true);
q.setPoints(1);
var q1 = q.createChoice('Choice 1', true);
arr.push(q1);
q1 = q.createChoice('Choice 2', false);
arr.push(q1);
q1 = q.createChoice('Choice 3', false);
arr.push(q1);
q1 = q.createChoice('Choice 4', false);
arr.push(q1);
q.setChoices(arr);
var correctFeedback = FormApp.createFeedback().setText('Correct feedback text').build();
q.setFeedbackForCorrect(correctFeedback);
var incorrectFeedback = FormApp.createFeedback().setText('Incorrect feedback text');
incorrectFeedback = incorrectFeedback.addLink('https://tamit.net', 'TamIT').build();
q.setFeedbackForIncorrect(incorrectFeedback);
}
function MyFunction4() {
var f = FormApp.getActiveForm();
var item = f.addMultipleChoiceItem();
var goSubmit = item.createChoice('YES', FormApp.PageNavigationType.SUBMIT);
var goRestart = item.createChoice('NO', FormApp.PageNavigationType.RESTART);
item.setRequired(true);
item.setTitle('Multiple choice title');
item.setHelpText('Multiple choice help text');
item.setChoices([goSubmit, goRestart]);
}
function MyFunction5() {
var f = FormApp.getActiveForm();
var arr = [];
var q = f.addListItem();
q.setTitle('List title').setHelpText('List help text').setRequired(true);
q.setPoints(1);
var q1 = q.createChoice('Choice 1', true);
arr.push(q1);
q1 = q.createChoice('Choice 2', false);
arr.push(q1);
q1 = q.createChoice('Choice 3', false);
arr.push(q1);
q1 = q.createChoice('Choice 4', false);
arr.push(q1);
q.setChoices(arr);
var correctFeedback = FormApp.createFeedback().setText('Correct feedback text').build();
q.setFeedbackForCorrect(correctFeedback);
var incorrectFeedback = FormApp.createFeedback().setText('Incorrect feedback text').addLink('https://tamit.net', 'TamIT').build();
q.setFeedbackForIncorrect(incorrectFeedback);
}
function MyFunction6() {
var f = FormApp.getActiveForm();
var q = f.addCheckboxItem();
q.setTitle('Checkbox title').setHelpText('Checkbox help text').setRequired(true);
q.setPoints(1);
var arr = [];
var q1 = q.createChoice('Choice 1', true);
arr.push(q1);
q1 = q.createChoice('Choice 2', false);
arr.push(q1);
q1 = q.createChoice('Choice 3', true);
arr.push(q1);
q1 = q.createChoice('Choice 4', false);
arr.push(q1);
q.setChoices(arr);
var correctFeedback = FormApp.createFeedback().setText('Correct feedback text').build();
q.setFeedbackForCorrect(correctFeedback);
var incorrectFeedback = FormApp.createFeedback().setText('Incorrect feedback text').addLink('https://tamit.net', 'TamIT').build();
q.setFeedbackForIncorrect(incorrectFeedback);
}
function MyFunction7() {
var f = FormApp.getActiveForm();
var q = f.addGridItem();
q.setTitle('Grid title').setHelpText('Grid help text').setRequired(true);
q.setRows(['Row 1', 'Row 2', 'Row 3']);
q.setColumns(['Column 1', 'Column 2', 'Column 3']);
}
function MyFunction8() {
var f = FormApp.getActiveForm();
var q = f.addCheckboxGridItem();
q.setTitle('Checkbox grid title').setHelpText('Checkbox grid help text').setRequired(true);
q.setRows(['Row 1', 'Row 2', 'Row 3']);
q.setColumns(['Column 1', 'Column 2', 'Column 3']);
}
function MyFunction9() {
var f = FormApp.getActiveForm();
var q = f.addTextItem().setTitle('Text title').setHelpText('Text help text').setRequired(true);
q.setPoints(1);
}
function MyFunction10() {
var f = FormApp.getActiveForm();
var q = f.addParagraphTextItem().setTitle('Paragraph text title').setHelpText('Paragraph text help text').setRequired(true);
q.setPoints(1);
}
function MyFunction11() {
var f = FormApp.getActiveForm();
var q = f.addScaleItem().setTitle('Scale title').setHelpText('Scale help text').setRequired(true);
q.setLabels('Low value', 'High value');
q.setBounds(1, 10);
q.setPoints(1);
}
function MyFunction12() {
var f = FormApp.getActiveForm();
var q = f.addTimeItem().setTitle('Time title').setHelpText('Time help text').setRequired(true);
q.setPoints(1);
}
function MyFunction13() {
var f = FormApp.getActiveForm();
var q = f.addDateItem().setTitle('Date title').setHelpText('Date help text').setRequired(true);
q.setPoints(1);
}
function MyFunction14() {
var f = FormApp.getActiveForm();
var img = UrlFetchApp.fetch('https://www.google.com/images/srpr/logo4w.png');
var q = f.addImageItem().setTitle('Image title').setHelpText('Image help text');
q.setImage(img);
q.setAlignment(FormApp.Alignment.CENTER);
q.setWidth(800);
}
function MyFunction15() {
var f = FormApp.getActiveForm();
var q = f.addVideoItem().setTitle('Video title').setHelpText('Video help text');
q.setVideoUrl('https://youtu.be/rJvMVhjYhoc');
q.setAlignment(FormApp.Alignment.CENTER).setWidth(800);
}
function MyFunction16() {
var f = FormApp.getActiveForm();
f.addSectionHeaderItem().setTitle('Section header title').setHelpText('Section header help text');
}
function MyFunction17() {
var f = FormApp.getActiveForm();
f.addPageBreakItem().setTitle('Page break title').setHelpText('Page break help text');
}
- Tạo bảng chọn chính có tiêu đề là "My Menu" (Lưu ý: Việc tạo bảng chọn chỉ áp dụng trong trường hợp mã lệnh được đính kèm bên trong biểu mẫu, điều này đồng nghĩa với việc chúng ta cần mở biểu mẫu bằng Google Forms mới có thể chạy được các lệnh liên quan đến việc tạo các bảng chọn)
Mã: Chọn tất cả
var menu = FormApp.getUi().createMenu('My Menu');
Mã: Chọn tất cả
menu.addItem('Sub-Menu 1 (Clear)', 'MyFunction1').addToUi();
Mã: Chọn tất cả
var fm = FormApp.create('My Form');
Mã: Chọn tất cả
var id = fm.getId();
Mã: Chọn tất cả
var f = FormApp.openById(id);
Mã: Chọn tất cả
var f = FormApp.getActiveForm();
Mã: Chọn tất cả
var ur = f.getPublishedUrl();
Mã: Chọn tất cả
f.setTitle('My Form');
Mã: Chọn tất cả
f.setDescription(ur);
Mã: Chọn tất cả
f.setIsQuiz(true);
Mã: Chọn tất cả
var fi = f.getItems();
Mã: Chọn tất cả
f.deleteItem(fi[i]);
Mã: Chọn tất cả
var q = f.addMultipleChoiceItem();
Mã: Chọn tất cả
q.setTitle('Multiple choice title');
Mã: Chọn tất cả
q.setHelpText('Multiple choice help text');
Mã: Chọn tất cả
q.setRequired(true);
Mã: Chọn tất cả
q.setPoints(1);
Mã: Chọn tất cả
var q1 = q.createChoice('Choice 1', true);
Mã: Chọn tất cả
q.setChoices(arr);
Mã: Chọn tất cả
var correctFeedback = FormApp.createFeedback().setText('Correct feedback text').build();
Mã: Chọn tất cả
q.setFeedbackForCorrect(correctFeedback);
Mã: Chọn tất cả
var incorrectFeedback = FormApp.createFeedback().setText('Incorrect feedback text');
Mã: Chọn tất cả
incorrectFeedback = incorrectFeedback.addLink('https://tamit.net', 'TamIT').build();
Mã: Chọn tất cả
q.setFeedbackForIncorrect(incorrectFeedback);
Mã: Chọn tất cả
var goSubmit = item.createChoice('YES', FormApp.PageNavigationType.SUBMIT);
Mã: Chọn tất cả
var goRestart = item.createChoice('NO', FormApp.PageNavigationType.RESTART);
Mã: Chọn tất cả
q.setRows(['Row 1', 'Row 2', 'Row 3']);
Mã: Chọn tất cả
q.setColumns(['Column 1', 'Column 2', 'Column 3']);
Mã: Chọn tất cả
q.setLabels('Low value', 'High value');
Mã: Chọn tất cả
q.setBounds(1, 10);
Mã: Chọn tất cả
var img = UrlFetchApp.fetch('https://www.google.com/images/srpr/logo4w.png');
Mã: Chọn tất cả
q.setImage(img);
Mã: Chọn tất cả
q.setAlignment(FormApp.Alignment.CENTER);
Mã: Chọn tất cả
q.setWidth(800);
Mã: Chọn tất cả
q.setVideoUrl('https://youtu.be/rJvMVhjYhoc');
Chi tiết tất cả các lệnh xem tại:
+ Các lệnh liên quan đến giao diện người dùng: https://developers.google.com/apps-scri ... ce/base/ui
+ Các lệnh chung liên quan đến biểu mẫu: https://developers.google.com/apps-scri ... s/form-app
+ Các lệnh liên quan đến câu hỏi dạng lựa chọn: https://developers.google.com/apps-scri ... rms/choice
+ Các lệnh liên quan đến câu hỏi dạng danh sách: https://developers.google.com/apps-scri ... /list-item
+ Các lệnh liên quan đến câu hỏi dạng đánh dấu kiểm: https://developers.google.com/apps-scri ... ckbox-item
+ Các lệnh liên quan đến câu hỏi dạng lưới lựa chọn: https://developers.google.com/apps-scri ... /grid-item
+ Các lệnh liên quan đến câu hỏi dạng lưới đánh dấu kiểm: https://developers.google.com/apps-scri ... -grid-item
+ Các lệnh liên quan đến câu hỏi trả lời ngắn: https://developers.google.com/apps-scri ... /text-item
+ Các lệnh liên quan đến cẩu hỏi đoạn văn bản: https://developers.google.com/apps-scri ... -text-item
+ Các lệnh liên quan đến câu hỏi dạng chọn mức độ: https://developers.google.com/apps-scri ... scale-item
+ Các lệnh liên quan đến câu hỏi dạng thời gian: https://developers.google.com/apps-scri ... /time-item
+ Các lệnh liên quan đến câu hỏi dạng ngày: https://developers.google.com/apps-scri ... /date-item
+ Các lệnh liên quan đến nội dung hình ảnh: https://developers.google.com/apps-scri ... image-item
+ Các lệnh liên quan đến nội dung video: https://developers.google.com/apps-scri ... video-item
+ Các lệnh liên quan đến phân đoạn: https://developers.google.com/apps-scri ... eader-item
+ Các lệnh liên quan đến ngắt trang: https://developers.google.com/apps-scri ... break-item
Mở rộng một số lệnh liên quan đến các phản hồi từ người dùng, có kết hợp với Google Sheets
Mã: Chọn tất cả
function GetResponses() {
var form = FormApp.openById('fomr_id');
var excel = SpreadsheetApp.openById('excel_id');
var s = excel.getActiveSheet();
s.getDataRange().clear();
var formResponses = form.getResponses();
for (var i = 0; i < formResponses.length; i++) {
var formResponse = formResponses[i];
var itemResponses = formResponse.getItemResponses();
s.getRange('A' + (i+2)).setValue(formResponse.getEditResponseUrl());
s.getRange('B' + (i+2)).setValue(itemResponses[0].getResponse());
s.getRange('C' + (i+2)).setValue(itemResponses[1].getResponse());
var point = formResponse.getGradableItemResponses();
var score = 0;
for (var j = 0; j < point.length; j++)
{
score += point[j].getScore();
}
s.getRange('D' + (i+2)).setValue(score/2);
}
};