เปลี่ยนงานเอกสารให้เป็นเรื่อง “สมาร์ท”: สร้างระบบบันทึกการประชุมและส่งรายงานอัตโนมัติด้วย Google Apps Script

เคยไหมคะ? ที่ต้องเสียเวลาครึ่งวันไปกับการพิมพ์สรุปการประชุม จัดหน้ากระดาษ แล้วต้องมาคอยส่งอีเมลหาผู้เข้าร่วมทีละคน วันนี้เราจะมาเปลี่ยนงานซ้ำซากเหล่านี้ให้เป็นระบบอัตโนมัติ (Automation) ที่ทำงานแทนคุณได้ภายในไม่กี่วินาที ด้วย Google Apps Script ค่ะ

🎯 ระบบนี้ทำอะไรได้บ้าง?

  1. เก็บข้อมูลเป็นระบบ: กรอกวาระและมติผ่าน Google Forms หรือ Sheets
  2. สร้างเอกสารอัตโนมัติ: ระบบจะดึงข้อมูลไปใส่ใน Template (Google Docs) และแปลงเป็น PDF ให้ทันที
  3. แจ้งเตือนทันใจ: ส่งสรุปการประชุมทาง Email ให้ผู้เกี่ยวข้องอัตโนมัติ

🛠️ สิ่งที่ต้องเตรียม (Prerequisites)

  1. Google Sheet: สำหรับเก็บข้อมูล (Database)
  2. Google Doc: สำหรับทำเป็นแบบฟอร์มบันทึกการประชุม (Template)
  3. Google Drive Folder: สำหรับเก็บไฟล์ที่สร้างเสร็จแล้ว

🚀 ขั้นตอนการสร้างระบบ (Step-by-Step)

1. สร้างฐานข้อมูล (Google Sheet)

สร้าง Sheet ขึ้นมา และกำหนดหัวข้อคอลัมน์แถวแรก เช่น

  • Column A: วันที่ประชุม
  • Column B: หัวข้อการประชุม
  • Column C: รายชื่อผู้เข้าประชุม
  • Column D: สรุปมติที่ประชุม
  • Column E: อีเมลผู้รับ (คั่นด้วย comma หากมีหลายคน)
  • Column F: สถานะ (เอาไว้ให้ระบบติ๊กว่่า “ส่งแล้ว”)

2. สร้างเทมเพลต (Google Doc)

สร้างไฟล์ Google Doc จัดรูปแบบให้สวยงาม ตรงไหนที่อยากให้ระบบดึงข้อมูลมาใส่ ให้ใส่เครื่องหมายปีกกา 2 ชั้นครอบไว้ เช่น {{Date}}, {{Topic}}, {{Resolution}}

3. พระเอกของเรา: Google Apps Script

ไปที่ Google Sheet ของเรา กดที่เมนู ส่วนขยาย (Extensions) > Apps Script แล้วลบโค้ดเก่าออก วางโค้ดนี้ลงไปนะคะ:

JavaScript

function createMeetingMinutes() {
  // 1. ตั้งค่า ID ของไฟล์และโฟลเดอร์
  const TEMPLATE_ID = 'ใส่_ID_ของไฟล์_Google_Doc_Template_ที่นี่';
  const FOLDER_ID = 'ใส่_ID_ของ_Folder_ที่ต้องการเก็บไฟล์';
  
  // 2. เชื่อมต่อกับ Sheet ที่ใช้งานอยู่
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const rows = sheet.getDataRange().getValues();
  
  // เริ่มวนลูปตรวจสอบข้อมูลตั้งแต่แถวที่ 2 (ไม่เอาหัวตาราง)
  rows.forEach((row, index) => {
    if (index === 0) return; // ข้ามหัวตาราง
    if (row[5] === 'Sent') return; // ถ้าส่งแล้วให้ข้ามไป

    // ดึงข้อมูลจากแต่ละคอลัมน์ (Array เริ่มนับที่ 0)
    const date = Utilities.formatDate(new Date(row[0]), "GMT+7", "dd/MM/yyyy");
    const topic = row[1];
    const attendees = row[2];
    const resolution = row[3];
    const emailTo = row[4];

    // 3. ทำสำเนา Template และแทนที่ข้อความ
    const folder = DriveApp.getFolderById(FOLDER_ID);
    const docFile = DriveApp.getFileById(TEMPLATE_ID).makeCopy(`รายงานการประชุม_${topic}`, folder);
    const doc = DocumentApp.openById(docFile.getId());
    const body = doc.getBody();

    // แทนที่ Placeholder {{...}} ด้วยข้อมูลจริง
    body.replaceText('{{Date}}', date);
    body.replaceText('{{Topic}}', topic);
    body.replaceText('{{Attendees}}', attendees);
    body.replaceText('{{Resolution}}', resolution);
    
    doc.saveAndClose(); // บันทึกและปิดไฟล์ Doc

    // 4. แปลงเป็น PDF (Optional)
    const pdfBlob = docFile.getAs(MimeType.PDF);
    const pdfFile = folder.createFile(pdfBlob);

    // 5. ส่งอีเมลพร้อมแนบไฟล์
    if (emailTo) {
      MailApp.sendEmail({
        to: emailTo,
        subject: `สรุปการประชุม: ${topic}`,
        body: `เรียน ผู้เกี่ยวข้อง,\n\nขอส่งสรุปรายงานการประชุม "${topic}" ประจำวันที่ ${date} \n\nรายละเอียดตามไฟล์แนบ`,
        attachments: [pdfBlob]
      });
    }

    // 6. อัปเดตสถานะใน Sheet ว่าส่งแล้ว
    sheet.getRange(index + 1, 6).setValue('Sent');
    
    // (ทางเลือก) ลบไฟล์ Doc ชั่วคราวทิ้ง เหลือไว้แค่ PDF
    // docFile.setTrashed(true);
  });
}

วิธีหา ID: เปิดไฟล์ Doc หรือ Folder ดูที่ URL จะมีชุดตัวอักษรยาวๆ หลัง /d/ หรือ /folders/ นั่นคือ ID ค่ะ


💡 วิธีใช้งานจริง

  1. เมื่อประชุมเสร็จ ให้กรอกข้อมูลสรุปลงใน Google Sheet
  2. ไปที่หน้า Apps Script กด Run (เรียกใช้) ฟังก์ชัน createMeetingMinutes
  3. Pro Tip: คุณสามารถสร้างปุ่ม (Drawing) ใน Google Sheet แล้ว Assign Script ให้กดปุ่มเพื่อรันระบบได้เลย โดยไม่ต้องเปิดหน้าโค้ดค่ะ!

✨ ประโยชน์ที่จะได้รับ

  • ลดความผิดพลาด: รูปแบบเอกสารจะเป็นมาตรฐานเดียวกันทุกครั้ง
  • ประหยัดเวลา: จากที่เคยใช้เวลาจัดหน้ากระดาษ 30 นาที เหลือเพียง 3 วินาที
  • ดูเป็นมืออาชีพ: การส่งสรุปที่รวดเร็วและเป็นระบบ สร้างความประทับใจให้ทีมงาน

ระบบนี้สามารถนำไปต่อยอดได้อีกมาก เช่น การส่งแจ้งเตือนเข้า LINE Messaging API หรือการดึงรายชื่อผู้เข้าประชุมจาก Google Calendar หากคุณเริ่มทำวันนี้ งานเอกสารของคุณในปีหน้าจะเบาลงอย่างแน่นอนค่ะ!

Scroll to Top