📑 สารบัญ
เริ่มต้น
สร้างไฟล์ Google Sheets ใหม่
ไฟล์นี้คือฐานข้อมูลของระบบ เก็บรายชื่อผู้รับ เทมเพลต งานสร้าง PDF และทะเบียนใบประกาศทุกใบ
- เข้า sheets.new ด้วยบัญชี Google ที่จะใช้งานจริง (ไฟล์ PDF จะเก็บใน Google Drive ของบัญชีนี้)
- คลิกชื่อไฟล์มุมซ้ายบน แล้วตั้งชื่อ เช่น เกียรติบัตร 2569 — CertMaker
ใส่ระบบ
วางไฟล์ Code.gs, Index.html และ appsscript.json
ชุดไฟล์ที่ได้รับมี 3 ไฟล์หลักที่ต้องวาง (โฟลเดอร์ tools และ GUIDE ไม่ต้องอัปโหลด)
- ในไฟล์ชีต ไปที่ ส่วนขยาย›Apps Script
- ตั้งชื่อโปรเจกต์มุมซ้ายบนเป็น Jabphap CertMaker (ชื่อนี้จะแสดงในหน้าขออนุญาตสิทธิ์)
- เปิดไฟล์ Code.gs ในหน้าแก้ไข กด Ctrl + A ลบโค้ดเดิม แล้ววาง Code.gs ที่ได้รับทั้งไฟล์ กด Ctrl + S
- กดปุ่ม + ข้างคำว่า “ไฟล์” › HTML ตั้งชื่อว่า
Index(ระบบจะเติม .html ให้เอง) ลบเนื้อหาเดิมแล้ววาง Index.html ทั้งไฟล์ กดบันทึก - ไปที่ ⚙ การตั้งค่าโปรเจกต์ ติ๊ก “แสดงไฟล์ Manifest ‘appsscript.json’ ในเครื่องมือแก้ไข” กลับมาเปิด appsscript.json วางทับทั้งไฟล์ แล้วบันทึก
Code.gs เรียกหน้าเว็บจากไฟล์ชื่อ Index ถ้าสะกดต่างไป หน้าเว็บจะเปิดไม่ขึ้น
เลื่อนดูบรรทัดสุดท้ายของ Code.gs และ Index.html ว่าวางครบ (Index.html ลงท้ายด้วย </html>)
appsscript.json ทำอะไร และระบบขอสิทธิ์อะไรบ้าง
กำหนดเขตเวลา Asia/Bangkok และระบุสิทธิ์ที่ใช้จริงเท่านั้น:
| ดู แก้ไข สร้างสเปรดชีต | อ่านรายชื่อ เขียนเลขที่ ลิงก์ PDF และทะเบียนใบประกาศ |
| ดู แก้ไข สร้าง ลบไฟล์ใน Google Drive | คัดลอกเทมเพลต สร้างไฟล์ PDF และโฟลเดอร์เก็บงาน |
| Google Slides / Google Docs | แทนค่า {{ช่อง}} ในสำเนาเทมเพลตก่อนแปลงเป็น PDF |
| ส่งอีเมลในนามของคุณ | ส่ง PDF ให้ผู้รับแต่ละคน |
| จัดการทริกเกอร์ | ทำงานต่อเบื้องหลังทุก 5 นาทีเมื่อรายชื่อเยอะ |
| แสดงเมนูในชีต / ดูอีเมลของคุณ | เมนูในไฟล์ชีต และแสดงบัญชีที่ใช้งาน |
ทำครั้งเดียว
รันฟังก์ชัน setup เพื่อสร้างชีต
- ในหน้าแก้ไข Code.gs เลือกฟังก์ชัน
setupจากรายการด้านบน แล้วกด ▶ เรียกใช้ - ครั้งแรก Google จะขออนุญาตสิทธิ์ — ทำตามขั้นที่ 4 แล้วระบบจะรันต่อเอง
- เมื่อเสร็จ ดู บันทึกการดำเนินการ (Execution log) ด้านล่าง จะขึ้นข้อความ “ติดตั้ง Jabphap CertMaker เรียบร้อย”
ระบบจะสร้างชีตเหล่านี้ให้อัตโนมัติ (พร้อมข้อมูลตัวอย่างให้ลองใช้):
| ชีต | เก็บอะไร |
|---|---|
| รายชื่อ | ชื่อ-นามสกุล อีเมล หลักสูตร วันที่ ชั่วโมง ผลการประเมิน รุ่น + คอลัมน์ระบบ (เลขที่ รหัสตรวจสอบ สถานะ ไฟล์ PDF ส่งอีเมลเมื่อ) |
| เทมเพลต | ไฟล์ Slides/Docs ช่องแทนค่า รูปแบบชื่อไฟล์ และเลขที่ถัดไป |
| งานสร้าง | การสร้าง PDF แต่ละครั้ง สถานะและความคืบหน้า |
| ทะเบียนใบประกาศ | ใบประกาศทุกใบที่ออก ใช้กับหน้าตรวจสอบสาธารณะ |
ใน Execution log จะมีข้อความ รหัสตั้งค่าครั้งแรก: 123456 ใช้รหัสนี้ตอนเปิดเว็บแอปครั้งแรกเพื่อตั้งรหัสผ่านผู้ดูแล (ลืมรหัสผ่านภายหลัง ให้รันฟังก์ชัน resetAdminPassword เพื่อรับรหัสใหม่)
ถ้าเผลอลบชีต หรืออัปเดตเวอร์ชันใหม่ ให้รัน setup อีกครั้ง ระบบจะสร้างเฉพาะส่วนที่ขาด ข้อมูลเดิมไม่หาย
ทำครั้งเดียว
อนุญาตสิทธิ์ให้ระบบ
เป็นเรื่องปกติของสคริปต์ที่ติดตั้งเองในบัญชีของคุณ ข้อมูลไม่ได้ถูกส่งไปที่อื่น


เพราะสคริปต์เป็นของคุณเองและไม่ได้ส่งให้ Google ตรวจรับรอง สคริปต์ทำงานในบัญชีของคุณเท่านั้น
เปิดใช้งาน
เผยแพร่เป็นเว็บแอป
- มุมขวาบน กด ทำให้ใช้งานได้›การทำให้ใช้งานได้รายการใหม่
- กดรูปเฟือง ⚙ เลือก เว็บแอป
- ตั้งค่า เรียกใช้ในฐานะ: ฉัน และ ผู้มีสิทธิ์เข้าถึง: ทุกคน แล้วกด ทำให้ใช้งานได้
- คัดลอก URL ของเว็บแอป (ลงท้ายด้วย
/exec) เก็บไว้ หรือบุ๊กมาร์กในมือถือ




หน้าตรวจสอบใบประกาศ (?verify=รหัส) ต้องให้บุคคลภายนอกเปิดได้โดยไม่ต้องล็อกอิน Google หน้าจัดการทั้งหมดยังป้องกันด้วยรหัสผ่านผู้ดูแล
ใช้งานครั้งแรก
ตั้งรหัสผ่านผู้ดูแล และสร้างใบประกาศแรก
- เปิด URL เว็บแอป กรอก รหัสตั้งค่าครั้งแรก 6 หลัก จาก Execution log แล้วตั้งรหัสผ่านผู้ดูแล (อย่างน้อย 6 ตัว)
- ไปที่ ตั้งค่า ใส่ชื่อหน่วยงาน (แสดงบนหน้าตรวจสอบ)
- ไปที่ เทมเพลต กด สร้างเทมเพลตตัวอย่าง หรือวางลิงก์ Google Slides/Docs ของคุณ
- ไปที่ สร้างใบประกาศ เลือกรายชื่อ แล้วกด เริ่มสร้าง

Google ให้สคริปต์ทำงานได้ประมาณ 6 นาทีต่อรอบ (สร้างได้ราว 40–80 ใบ) รายชื่อที่เหลือระบบจะทำต่อเองทุก 5 นาที
ดูแลระบบ
อัปเดตเวอร์ชันใหม่
- วาง Code.gs และ Index.html เวอร์ชันใหม่ทับของเดิม แล้วบันทึก
- รันฟังก์ชัน
setupอีกครั้ง (เพิ่มคอลัมน์/ชีตใหม่ถ้ามี ข้อมูลเดิมไม่หาย) - ไปที่ ทำให้ใช้งานได้›จัดการการทำให้ใช้งานได้ กดแก้ไข ✏ เลือก เวอร์ชัน: เวอร์ชันใหม่ แล้วกด ทำให้ใช้งานได้ — URL เดิมใช้ต่อได้
ช่วยเหลือ
คำถามที่พบบ่อย
ฟอนต์ภาษาไทยใน PDF เพี้ยน
ใช้ฟอนต์ที่มีใน Google Slides/Docs เช่น Sarabun, Prompt, Kanit, Noto Sans Thai และเว้นพื้นที่ให้ชื่อยาวพอ
ช่อง {{ชื่อ}} ไม่ถูกแทนค่า
พิมพ์ช่องแทนค่าในเทมเพลตให้ต่อเนื่องในครั้งเดียว (ไม่จัดรูปแบบตัวอักษรต่างกันกลางคำ) แล้วกดปุ่ม 🔄 อ่านช่องแทนค่าใหม่ในหน้าเทมเพลต ชื่อในวงเล็บปีกกาต้องตรงกับหัวคอลัมน์ในชีต
ต้องการสร้างใบเดิมใหม่หลังแก้ชื่อผิด
แก้ชื่อในชีต แล้วเลือกโหมด “สร้างใหม่ทั้งหมด” พร้อมกรองเฉพาะคนนั้น เลขที่และรหัสตรวจสอบเดิมจะถูกใช้ต่อ
ลืมรหัสผ่านผู้ดูแล
เปิด Apps Script รันฟังก์ชัน resetAdminPassword แล้วใช้รหัส 6 หลักใหม่จาก Execution log ตั้งรหัสผ่านใหม่
เปิด URL แล้วขึ้น “ไม่พบสคริปต์ฟังก์ชัน: doGet” หรือหน้าขาว
ตรวจว่าวาง Code.gs ครบทั้งไฟล์ และมีไฟล์ HTML ชื่อ Index จากนั้นทำให้ใช้งานได้เป็นเวอร์ชันใหม่
หน้าเว็บขึ้นว่า “ยังไม่ได้ติดตั้งระบบ”
ยังไม่ได้รันฟังก์ชัน setup หรือรันจากโปรเจกต์ที่ไม่ได้ผูกกับไฟล์ชีต ให้เปิด Apps Script จากเมนู ส่วนขยาย ของไฟล์ชีต แล้วรัน setup
ทริกเกอร์อัตโนมัติอยู่ที่ไหน
ใน Apps Script เมนูด้านซ้ายรูปนาฬิกา (ทริกเกอร์) จะเห็นทริกเกอร์ที่ setup สร้างไว้ ไม่ควรลบ หากเผลอลบให้รัน setup ใหม่