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 จะช่วยประหยัดเวลาและเพิ่มความสะดวกในการจัดการข้อมูลให้สะอาดและเป็นระบบ
