Google Apps Script คืออะไร?
Google Apps Script คือเครื่องมือเขียนสคริปต์ฟรีจาก Google ที่ช่วยให้เราสั่งให้ Google Sheet ทำงานอัตโนมัติได้ เช่น ส่งอีเมลเตือนเมื่อสินค้าใกล้หมด สร้างรายงานสรุปทุกเช้า หรือจัดรูปแบบข้อมูลให้สวยอัตโนมัติ
หลายคนได้ยินคำว่า "เขียนสคริปต์" แล้วรู้สึกว่ายาก แต่จริงๆ แล้ว ไม่ต้องเป็นโปรแกรมเมอร์ก็ใช้ Apps Script ได้เพราะบทความนี้เตรียม code สำเร็จรูปให้ก๊อปไปวางใน Google Sheet ได้เลย แค่เปลี่ยนค่าบางอย่างก็ใช้งานได้ทันที
สิ่งที่จะได้จากบทความนี้
- เปิดและใช้งาน Script Editor ใน Google Sheet ได้
- Script ส่งอีเมลอัตโนมัติเมื่อข้อมูลตรงเงื่อนไข (ก๊อปไปใช้ได้เลย)
- Script สร้างเมนูกดเรียกใช้ฟังก์ชัน
- Script จัดรูปแบบข้อมูลอัตโนมัติเมื่อมีคนกรอก
- Script สร้างรายงานสรุปอัตโนมัติทุกวัน
- เข้าใจ Trigger 3 ประเภท: onEdit, onOpen, Time-driven
เนื้อหาในบทความ
- 1. เปิด Script Editor ครั้งแรก
- 2. Script แรก: Hello World + แสดง Dialog
- 3. Script 1: ส่งอีเมลอัตโนมัติเมื่อข้อมูลตรงเงื่อนไข
- 4. Script 2: สร้างเมนูกดเรียกใช้ฟังก์ชัน
- 5. Script 3: Auto-format ข้อมูลใหม่ (onEdit trigger)
- 6. Script 4: สร้างรายงานอัตโนมัติทุกวัน
- 7. Triggers - onEdit, onOpen, Time-driven
- 8. ข้อควรระวัง (Quotas, Permissions, Security)
- 9. คำถามที่พบบ่อย
1. เปิด Script Editor ครั้งแรก
Script Editor คือหน้าต่างที่ให้เราเขียน code ได้โดยตรงใน Google Sheet ไม่ต้องติดตั้งโปรแกรมอะไรเพิ่ม ทำงานบน Browser ได้เลย
วิธีเปิด Script Editor
เปิด Google Sheet
เปิดไฟล์ Google Sheet ที่ต้องการเขียน Script (สร้างไฟล์ใหม่ก็ได้)
ไปที่เมนู Extensions
คลิกที่เมนู Extensions (ส่วนขยาย) ที่แถบเมนูด้านบน
คลิก Apps Script
เลือก Apps Script จะเปิดหน้าต่าง Script Editor ขึ้นมาในแท็บใหม่
หน้าตา Script Editor
เมื่อเปิด Script Editor จะเห็นไฟล์ Code.gs พร้อมฟังก์ชันตัวอย่าง myFunction() อยู่แล้ว ตรงนี้คือที่ที่เราจะเขียน Script ทั้งหมด
ลบ code ตัวอย่างนี้ออกได้เลย แล้ววาง Script ที่เราเตรียมให้ด้านล่างแทน
2. Script แรก: Hello World + แสดง Dialog
ก่อนจะไปทำอะไรซับซ้อน มาลองเขียน Script แรกกัน Script นี้จะแสดงกล่องข้อความ (Dialog) ขึ้นมาใน Google Sheet เพื่อทดสอบว่าทุกอย่างทำงานได้
ก๊อป code นี้ไปวางใน Script Editor
วิธีรัน Script
เลือกฟังก์ชัน
ที่แถบเครื่องมือด้านบน เลือกฟังก์ชัน helloWorld จาก Dropdown
กดปุ่ม Run
กดปุ่ม Run (รูปสามเหลี่ยม) หรือกด Ctrl + R
อนุญาต Permission
ครั้งแรกจะถูกถาม Permission - กด Review Permissions แล้วกด Allow เพื่ออนุญาตให้ Script เข้าถึง Google Sheet
ดูผลลัพธ์
กลับไปที่หน้า Google Sheet จะเห็นกล่องข้อความ "สวัสดีครับ!" ขึ้นมา
เรื่อง Permission ไม่ต้องกลัว
Google จะถาม Permission ครั้งแรกเพื่อความปลอดภัย อาจเห็นข้อความ "This app isn't verified" ให้กด Advanced แล้วกด Go to (project name)เพราะเราเป็นคนเขียน Script เองจึงปลอดภัย
3. Script 1: ส่งอีเมลอัตโนมัติเมื่อสินค้าใกล้หมด
สมมติว่าเรามีตารางสต็อกสินค้าใน Google Sheet และต้องการให้ระบบส่งอีเมลเตือนอัตโนมัติเมื่อสินค้าเหลือต่ำกว่าที่กำหนด Script นี้ทำได้เลย
โครงสร้างข้อมูลที่ต้องเตรียม
| A: ชื่อสินค้า | B: จำนวนคงเหลือ | C: จำนวนขั้นต่ำ |
|---|---|---|
| กระดาษ A4 | 5 | 10 |
| หมึกพิมพ์ | 3 | 5 |
| ปากกา | 50 | 20 |
ก๊อป code นี้ไปวาง
วิธีใช้งาน
- สร้างตาราง 3 คอลัมน์ตามตัวอย่างด้านบน
- ก๊อป code ไปวางใน Script Editor
- เปลี่ยน
your-email@gmail.comเป็นอีเมลของเรา - เลือกฟังก์ชัน
checkLowStockแล้วกด Run - ถ้ามีสินค้าสต็อกต่ำ จะได้รับอีเมลแจ้งเตือนทันที
ต้องการให้ตรวจสอบอัตโนมัติทุกวัน?
สามารถตั้ง Time-driven Trigger ให้ Script นี้ทำงานทุกเช้าได้ ดูวิธีตั้ง Trigger ใน หัวข้อที่ 7
5. Script 3: Auto-format ข้อมูลใหม่ (onEdit trigger)
Script นี้จะทำงานอัตโนมัติทุกครั้งที่มีคนกรอกข้อมูลใหม่ใน Google Sheet โดยจะจัดรูปแบบข้อมูลให้สวยงาม เพิ่มเส้นขอบ เปลี่ยนสีพื้นหลังสลับแถว และแปลงตัวอักษรให้เป็นตัวพิมพ์ใหญ่คำแรก
ก๊อป code นี้ไปวาง
Script นี้ทำอะไรบ้าง?
- เพิ่มเส้นขอบให้แถวที่เพิ่งแก้ไข
- สลับสีพื้นหลังแถวคู่-คี่ให้อ่านง่าย
- แปลงตัวอักษรตัวแรกเป็นตัวพิมพ์ใหญ่อัตโนมัติ
- จัดรูปแบบตัวเลข (ใส่ comma คั่นหลักพัน)
- บันทึก timestamp วันที่แก้ไขล่าสุดอัตโนมัติ
ข้อจำกัดของ onEdit
onEdit() แบบ Simple Trigger ไม่สามารถส่งอีเมลหรือเข้าถึงบริการภายนอกได้ ถ้าต้องการส่งอีเมลจาก onEdit ต้องใช้ Installable Trigger แทน (ดูวิธีตั้งค่าใน หัวข้อที่ 7)
6. Script 4: สร้างรายงานอัตโนมัติทุกวัน
Script นี้จะสร้างรายงานสรุปข้อมูลจาก Google Sheet แล้วส่งอีเมลรายงานให้อัตโนมัติทุกวัน เหมาะสำหรับ สรุปยอดขาย สรุปสต็อก หรือสรุปข้อมูลอะไรก็ได้ที่อยู่ใน Sheet
ก๊อป code นี้ไปวาง
วิธีตั้งให้ส่งรายงานอัตโนมัติทุกเช้า
- เปิด Script Editor
- คลิกไอคอนนาฬิกา (Triggers) ที่เมนูด้านซ้าย
- กด + Add Trigger
- เลือกฟังก์ชัน:
createDailyReport - Event source: Time-driven
- Type: Day timer
- Time: 7am to 8am (หรือเวลาที่ต้องการ)
- กด Save
ปรับแต่งรายงานให้เหมาะกับข้อมูลของเรา
Script นี้เป็นโครงสร้างพื้นฐาน เราสามารถเพิ่มการคำนวณอื่นๆ ได้ เช่น นับจำนวนตามหมวดหมู่ หายอดรวมตามวันที่ หรือหาค่าต่ำสุด แค่เพิ่ม code คำนวณแล้วใส่ในอาร์เรย์ report
7. Triggers - ให้ Script ทำงานอัตโนมัติ
Trigger คือ "ตัวจุดชนวน" ที่สั่งให้ Script ทำงานอัตโนมัติตามเงื่อนไข ไม่ต้องเปิด Script Editor มากดรันเอง มี 3 ประเภทหลักที่ใช้บ่อย
1onEdit - ทำงานเมื่อมีคนแก้ไขข้อมูล
ใช้เมื่อ: ต้องการจัดรูปแบบข้อมูลอัตโนมัติ, ตรวจสอบข้อมูลที่กรอก, เพิ่ม timestamp
ข้อจำกัด: ไม่สามารถส่งอีเมล, เปิดไฟล์อื่น, หรือเข้าถึงบริการภายนอกได้
2onOpen - ทำงานเมื่อเปิดไฟล์
ใช้เมื่อ: สร้างเมนูใน Google Sheet, แสดงข้อความต้อนรับ, ตั้งค่าเริ่มต้น
ข้อจำกัด: เหมือน onEdit - ไม่สามารถเข้าถึงบริการภายนอกได้
3Time-driven - ทำงานตามเวลาที่กำหนด
ใช้เมื่อ: ส่งรายงานทุกวัน, สำรองข้อมูลทุกสัปดาห์, ตรวจสอบสต็อกทุกเช้า
ตัวเลือกเวลา: ทุก x นาที, ทุกชั่วโมง, ทุกวัน, ทุกสัปดาห์, ทุกเดือน
สรุปเปรียบเทียบ Trigger ทั้ง 3 ประเภท
| Trigger | ทำงานเมื่อ | ส่งอีเมลได้? | ตั้งค่า |
|---|---|---|---|
| onEdit | แก้ไขข้อมูล | ไม่ได้ (Simple) | ตั้งชื่อฟังก์ชัน |
| onOpen | เปิดไฟล์ | ไม่ได้ (Simple) | ตั้งชื่อฟังก์ชัน |
| Time-driven | ตามเวลาที่กำหนด | ได้ | ตั้งผ่าน UI/code |
8. ข้อควรระวัง (Quotas, Permissions, Security)
Google Apps Script ใช้งานฟรี แต่มีข้อจำกัดบางอย่างที่ต้องรู้ เพื่อจะได้วางแผนใช้งานได้ถูกต้อง
Quotas - ข้อจำกัดการใช้งาน
| รายการ | บัญชีฟรี | Google Workspace |
|---|---|---|
| ส่งอีเมล/วัน | 100 ฉบับ | 1,500 ฉบับ |
| เวลา Script ทำงาน/ครั้ง | 6 นาที | 6 นาที |
| เวลา Script รวม/วัน | 90 นาที | 360 นาที |
| Triggers/ผู้ใช้/Script | 20 triggers | 20 triggers |
| URL Fetch calls/วัน | 20,000 ครั้ง | 100,000 ครั้ง |
Permissions - สิทธิ์การเข้าถึง
- ครั้งแรกต้องอนุญาต: Google จะถามสิทธิ์ทุกครั้งที่ Script เข้าถึงบริการใหม่ เช่น ส่งอีเมล เข้าถึง Drive หรือ Calendar
- แชร์ไฟล์ = แชร์ Script: ถ้าเราแชร์ Google Sheet ให้คนอื่น เขาจะเห็น Script ที่เราเขียนด้วย วางแผนเรื่องนี้ให้ดี
- Trigger ทำงานในนามผู้สร้าง: ถ้าเราตั้ง Trigger Script จะทำงานด้วยสิทธิ์ของเรา แม้คนอื่นจะแก้ไขข้อมูล
Security - ความปลอดภัย
- อย่าใส่รหัสผ่านใน Script: ถ้าต้องใช้ API Key หรือรหัสผ่าน ให้เก็บใน
Script Propertiesแทน (File > Project properties > Script properties) - ตรวจสอบ Script จากคนอื่น: ก่อนรัน Script ที่ได้จากคนอื่น ให้อ่าน code ก่อนเสมอ เพราะ Script สามารถเข้าถึงข้อมูลในบัญชี Google ของเรา
- ตรวจสอบ Trigger เป็นระยะ: เข้าไปเช็คที่ Script Editor > Triggers ว่ามี Trigger ที่ไม่ต้องการทำงานอยู่หรือไม่
พร้อมทำ Google Sheet ให้ทำงานอัตโนมัติแล้วหรือยัง?
ลองเริ่มจาก Script ง่ายๆ ที่เตรียมไว้ ก๊อปไปวางใน Google Sheet ของเราได้เลย แล้วค่อยปรับแต่งให้เหมาะกับงาน
คำถามที่พบบ่อย
Google Apps Script คืออะไร ต้องเป็นโปรแกรมเมอร์ถึงจะใช้ได้ไหม?
Google Apps Script คือเครื่องมือเขียนสคริปต์ฟรีจาก Google ที่ทำงานร่วมกับ Google Sheet ได้โดยตรง ไม่ต้องเป็นโปรแกรมเมอร์ก็ใช้ได้ เพราะสามารถก๊อปโค้ดสำเร็จรูปไปวางแล้วใช้งานได้ทันที เหมาะสำหรับคนที่ต้องการทำงานซ้ำๆ ให้เป็นอัตโนมัติ
Apps Script เปิดใช้งานยังไง?
เปิด Google Sheet ไฟล์ที่ต้องการ แล้วไปที่เมนู Extensions > Apps Scriptจะเปิดหน้า Script Editor ขึ้นมาให้เขียนโค้ดได้ทันที ไม่ต้องติดตั้งโปรแกรมเพิ่ม ทำงานบน Browser ได้เลย
Trigger ใน Apps Script คืออะไร มีกี่แบบ?
Trigger คือตัวตั้งเวลาหรือเงื่อนไขที่สั่งให้ Script ทำงานอัตโนมัติ มี 3 แบบหลัก: onEdit (ทำงานเมื่อมีคนแก้ไขข้อมูล), onOpen (ทำงานเมื่อเปิดไฟล์), Time-driven (ทำงานตามเวลาที่กำหนด เช่น ทุกวัน ทุกชั่วโมง)
Google Apps Script มีค่าใช้จ่ายไหม มีข้อจำกัดอะไรบ้าง?
Google Apps Script ใช้งานฟรี แต่มีข้อจำกัด (Quotas) สำหรับบัญชีฟรี เช่น ส่งอีเมลได้ 100 ฉบับ/วัน, Script ทำงานได้สูงสุด 6 นาทีต่อครั้ง, และเรียก API ภายนอกได้ 20,000 ครั้ง/วัน สำหรับ Google Workspace มี Quota สูงกว่า
บทความที่เกี่ยวข้อง
Google Apps Script Automation ขั้นสูง
เรียนรู้ Apps Script ขั้นสูง สำรองข้อมูล สร้าง Custom Function และ Web App