Google Apps Script สร้างเกียรติบัตรอัตโนมัติจาก Google Form
1. เตรียมไฟล์ที่จำเป็น
1.1 สร้าง Google Form สำหรับเก็บข้อมูล
- สร้าง Google Form สำหรับให้ผู้ใช้กรอก เช่น ชื่อ-นามสกุล, อีเมล, คะแนน ฯลฯ
- หัวข้อที่แนะนำ:
- ชื่อผู้รับ (กรอกชื่อเต็ม)
- อีเมล (สำหรับส่งเกียรติบัตร)
- คะแนน หรือ คำถามแบบประเมิน (ตามลักษณะของกิจกรรม)
1.2 สร้าง Google Slides Template สำหรับเกียรติบัตร
- สร้างใบประกาศเกียรติบัตรใน Google Slides
- ใส่ข้อความที่ต้องการแสดงในทุกใบ เช่น:
- “ขอมอบเกียรติบัตรฉบับนี้ให้แก่ <<ชื่อ>>”
- วันที่และรายละเอียดอื่น ๆ
- ใช้ชื่อในแบบนี้:
<<ชื่อ>>
,<<คะแนน>>
,<<วันที่>>
สำหรับการแทนที่ใน Google Apps Script
1.3 สร้าง Google Sheets สำหรับบันทึกคำตอบ
- เมื่อสร้าง Google Form เสร็จแล้ว ให้ไปที่ Responses > Google Sheets เพื่อลิงก์คำตอบที่กรอกในแบบฟอร์ม
2. เขียน Google Apps Script เพื่อสร้างเกียรติบัตร
2.1 เปิด Google Sheets ที่เก็บคำตอบ
- ไปที่ Extensions > Apps Script จาก Google Sheets
- เขียนสคริปต์ใหม่โดยใช้โค้ดนี้:
javascript
function createCertificate() {
// 1. เปิด Google Sheets ที่มีข้อมูลคำตอบ
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
// 2. เปิด Google Slides Template (ต้องใส่ ID ของไฟล์)
var templateId = 'your-google-slides-template-id'; // เปลี่ยน ID ของไฟล์ Google Slides ของคุณ
var slides = SlidesApp.openById(templateId);
// 3. ลูปผ่านแต่ละแถวใน Google Sheets (เริ่มจากแถวที่ 2 เพราะแถวแรกเป็นหัวตาราง)
for (var i = 1; i < data.length; i++) {
var name = data[i][0]; // ชื่อผู้รับ
var email = data[i][1]; // อีเมล
var score = data[i][2]; // คะแนน (หรือคำตอบในช่องที่คุณต้องการ)
// 4. สร้างสำเนาของเทมเพลต
var certificate = slides.copy('Certificate for ' + name);
// 5. แทนที่ข้อมูลใน Template
var slidesText = certificate.getSlides();
slidesText[0].replaceAllText('<<name>>', name); // แทนที่ชื่อ
slidesText[0].replaceAllText('<<score>>', score); // แทนที่คะแนน
slidesText[0].replaceAllText('<<date>>', new Date().toLocaleDateString()); // ใส่วันที่
// 6. ดาวน์โหลดเป็น PDF
var pdf = DriveApp.getFileById(certificate.getId()).getAs('application/pdf');
// 7. ส่งอีเมลเกียรติบัตร
MailApp.sendEmail({
to: email,
subject: 'เกียรติบัตรการเข้าร่วมกิจกรรม',
body: 'เรียนคุณ ' + name + ',\n\nเกียรติบัตรของคุณตามแนบ\n\nขอบคุณครับ/ค่ะ',
attachments: [pdf]
});
// 8. ลบสำเนาของเกียรติบัตรหลังจากส่งอีเมล
DriveApp.getFileById(certificate.getId()).setTrashed(true);
}
}
คำอธิบายโค้ด:
- Step 1: เราเปิด Google Sheets ที่เก็บคำตอบจาก Google Form
- Step 2: เราเปิด Google Slides Template ที่สร้างไว้
- Step 3: ลูปผ่านแต่ละแถวใน Google Sheets เพื่อดึงข้อมูล (ชื่อ, อีเมล, คะแนน)
- Step 4: สร้าง สำเนา Google Slides สำหรับแต่ละบุคคล
- Step 5: ใช้ replaceAllText เพื่อแทนที่ข้อมูลที่ต้องการ
- Step 6: ดาวน์โหลด เกียรติบัตรเป็นไฟล์ PDF
- Step 7: ส่ง อีเมล พร้อมไฟล์ PDF ไปยังอีเมลที่กรอกในแบบฟอร์ม
- Step 8: ลบสำเนา ของเกียรติบัตรหลังจากส่งอีเมลเสร็จ
2.2 ตั้งค่า Trigger เพื่อให้ทำงานอัตโนมัติ
- ไปที่ Triggers ใน Google Apps Script:
Edit > Current Project’s Triggers - ตั้งให้ฟังก์ชัน createCertificate ทำงานอัตโนมัติเมื่อมีการส่งคำตอบใหม่ใน Google Form:
- เลือกฟังก์ชัน
createCertificate
- เลือก Trigger: On form submit เพื่อให้ทำงานทุกครั้งที่มีการกรอกข้อมูล
- เลือกฟังก์ชัน
3. ทดสอบการใช้งาน
- ทดสอบการกรอกข้อมูลใน Google Form และตรวจสอบว่าเกียรติบัตรจะถูกสร้างและส่งไปยังอีเมลอัตโนมัติ
- ตรวจสอบว่าไฟล์ PDF ถูกสร้างและส่งได้ถูกต้องตามที่ต้องการ
4. สรุป
การใช้ Google Apps Script เพื่อสร้างเกียรติบัตรอัตโนมัติเป็นวิธีที่ มีประสิทธิภาพ และ ฟรี สำหรับผู้ที่ต้องการส่งเกียรติบัตรหรือประกาศนียบัตรจำนวนมาก เช่น:
- กิจกรรมอบรม
- แบบประเมิน
- การสอบออนไลน์
โดยใช้ Google Form, Google Sheets, Google Slides, และ Google Apps Script จะช่วยประหยัดเวลาและเพิ่มความสะดวกในการจัดการข้อมูลให้สะอาดและเป็นระบบ