🔴 ขั้นสูง

Google Apps Script คือ? เริ่มจาก 0 ส่ง Email อัตโนมัติได้ใน 10 นาที

สอน Google Apps Script จากศูนย์ — เปิด Extensions > Apps Script อยู่ตรงไหน เขียน Script แรก ส่ง Email อัตโนมัติ ตั้ง Trigger สำรองข้อมูล พร้อม Code copy ใช้ได้เลย ไม่ต้องเป็นโปรแกรมเมอร์ (อัปเดต 2026)

AdminYo
อัปเดต 9 เมษายน 2026
15 นาที
Google Apps Script ทำงานอัตโนมัติใน Google Sheets

🔴 ปัญหาที่ทุกคนเจอ

ทุกเดือนต้องนั่ง copy ข้อมูลจากชีตนี้ไปชีตนั้น ส่ง email รายงานเจ้านายเอง ทำซ้ำแบบนี้ทุกวัน — ถ้า Google Sheets ทำให้อัตโนมัติได้ล่ะ?

คำตอบคือ Google Apps Script เขียนแค่ไม่กี่บรรทัด ระบบจะทำงานแทนเราเองทุกเช้า

ตารางข้อมูลใน Google Sheets ที่ต้องจัดการทุกวัน
ตารางข้อมูลที่ต้องจัดการทุกวัน — copy, ส่ง email, อัพเดทสถานะ ซ้ำไปซ้ำมา

Cheat Sheet สูตร Google Sheets ฟรี

รวมสูตรที่ใช้บ่อย พร้อมตัวอย่าง อธิบายเข้าใจง่าย เปิดดูได้ตลอดขณะทำงาน

⚡ Extensions > Apps Script อยู่ตรงไหน?

คนค้นเรื่องนี้เยอะมาก — "extensions apps script อยู่ตรงไหน?" มาดูกันเลย 3 ขั้นตอน

ขั้นที่ 1: เปิด Google Sheets ที่ต้องการ

เปิดไฟล์ Google Sheets ที่เราจะเขียน Script ขึ้นมา (จะเป็นไฟล์เก่าหรือสร้างใหม่ก็ได้)

เปิดไฟล์ Google Sheets ที่มีข้อมูล
เปิด Google Sheets ที่เราจะใช้งาน — ไฟล์ไหนก็ได้

ขั้นที่ 2: คลิก ส่วนขยาย (Extensions) > Apps Script

ดูที่เมนูด้านบน → คลิก "ส่วนขยาย" (Extensions) → เลือก "Apps Script"

เมนู Extensions อยู่ที่แถบเมนูด้านบนของ Google Sheets
คลิกเมนู "ส่วนขยาย" (Extensions) ที่แถบเมนูด้านบน → เลือก "Apps Script"
ตำแหน่งเมนู Extensions บนแถบเมนูของ Google Sheets
เมนู "ส่วนขยาย" อยู่ถัดจาก "เครื่องมือ" (Tools) บนแถบเมนูด้านบน

ขั้นที่ 3: Script Editor เปิดมา — พร้อมเขียนแล้ว!

จะเปิดแท็บใหม่ขึ้นมาเป็น Apps Script Editor มีโค้ดตั้งต้นให้เลย เราแค่ลบแล้วเขียนใหม่ได้ทันที

หน้า Apps Script Editor ที่เปิดขึ้นมา พร้อมเขียนโค้ด
Apps Script Editor เปิดขึ้นมาแล้ว — พร้อมเขียน Script แรกของเรา

Extensions > Apps Script อยู่ที่ไหน?

อยู่ที่ เมนูด้านบน ของ Google Sheets ถัดจาก "เครื่องมือ" (Tools) → คลิก "ส่วนขยาย" → เลือก "Apps Script" จะเปิด Editor ขึ้นมาในแท็บใหม่ ไม่ต้องติดตั้งอะไรเพิ่ม!

⚡ ทำตามเลย: Script แรกของเรา

Copy โค้ดนี้ไปวางใน Script Editor แล้วกด Run ได้เลย — แค่ 5 บรรทัดก็เขียนข้อมูลลงชีตได้แล้ว!

Script แรก: เขียนข้อมูลลงเซลล์ A1

function myFirstScript() {
  // ดึง Sheet ที่เปิดอยู่
  var sheet = SpreadsheetApp.getActiveSheet();

  // เขียนข้อความลงเซลล์ A1
  sheet.getRange("A1").setValue("สวัสดี Apps Script!");

  // แสดง Log ว่าทำงานสำเร็จ
  Logger.log("เขียนลง A1 เรียบร้อย!");
}
โค้ด Apps Script ใน Script Editor พร้อมกด Run
วางโค้ดใน Script Editor แล้วกดปุ่ม Run (สามเหลี่ยม ▶) ที่แถบเมนูด้านบน

กด Run ▶ → ได้เลย! กลับไปดูชีต เซลล์ A1 จะมีข้อความ "สวัสดี Apps Script!" ขึ้นมาแล้ว

ผลลัพธ์: ข้อมูลถูกเขียนลงเซลล์ A1 โดย Apps Script
กลับมาดูชีต — เซลล์ A1 มีข้อมูลที่ Script เขียนให้แล้ว!

ยินดีด้วย!

เราเพิ่งเขียน Apps Script ตัวแรกสำเร็จแล้ว — จากนี้ไปจะเป็นตัวอย่างจริงที่ใช้งานได้เลย

🔧 ตัวอย่างจริง 1: ส่ง Email อัตโนมัติ

ปัญหา: ต้องส่งรายงานยอดขายให้เจ้านายทุกเช้า — ลืมบ่อย เจ้านายบ่น

วิธีแก้: ให้ Script อ่านข้อมูลจากชีตแล้วส่ง email ให้เองอัตโนมัติ

Script ส่งรายงานยอดขายทาง Email

function sendSalesReport() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();

  // สร้างเนื้อหา email จากข้อมูลในชีต
  var body = "รายงานยอดขายประจำวัน\n\n";
  var total = 0;

  for (var i = 1; i < data.length; i++) {
    body += data[i][0] + ": " + data[i][1] + " บาท\n";
    total += Number(data[i][1]);
  }
  body += "\nรวมทั้งหมด: " + total + " บาท";

  // ส่ง email
  GmailApp.sendEmail(
    "boss@company.com",
    "รายงานยอดขาย " + new Date().toLocaleDateString("th-TH"),
    body
  );

  Logger.log("ส่ง email เรียบร้อย!");
}
ตัวอย่าง Script ส่ง Email อัตโนมัติจากข้อมูล Google Sheets
Script อ่านข้อมูลจากชีต → สร้างรายงาน → ส่ง email ให้เจ้านายอัตโนมัติ

🔧 ตัวอย่าง 2: ตั้งเวลารันอัตโนมัติ (Trigger)

คำถาม: "ทำยังไงให้ Script ทำงานเองทุกวัน 9 โมงเช้า โดยที่เราไม่ต้องมานั่งกด Run?"

คำตอบ: ใช้ Trigger — ตั้งเวลาครั้งเดียว ระบบรันให้เองทุกวัน!

สร้าง Trigger ส่งรายงานทุกเช้า 9 โมง

function createDailyTrigger() {
  // ลบ Trigger เก่าก่อน (ป้องกันซ้ำ)
  var triggers = ScriptApp.getProjectTriggers();
  triggers.forEach(function(trigger) {
    ScriptApp.deleteTrigger(trigger);
  });

  // สร้าง Trigger ใหม่ — รัน sendSalesReport ทุกวัน 9 โมง
  ScriptApp.newTrigger("sendSalesReport")
    .timeBased()
    .everyDays(1)
    .atHour(9)
    .create();

  Logger.log("ตั้ง Trigger เรียบร้อย! รันทุกวัน 9:00 น.");
}

รัน createDailyTrigger() ครั้งเดียว — จากนี้ Script จะส่งรายงานให้เจ้านายเองทุกเช้า ไม่ต้องทำอะไรอีก

ตั้ง Trigger ให้ Apps Script ทำงานอัตโนมัติทุกวัน
ตั้ง Trigger ครั้งเดียว — Script ทำงานเองทุกวัน 9 โมงเช้า

Trigger แบบอื่นๆ ที่น่าสนใจ

  • onEdit(e) — ทำงานทันทีเมื่อแก้ไขเซลล์ (เช่น บันทึกเวลาแก้ไข)
  • onOpen(e) — ทำงานเมื่อเปิดไฟล์ (เช่น สร้างเมนูเพิ่ม)
  • everyHours(1) — รันทุกชั่วโมง เช่น เช็คข้อมูลใหม่จาก API

🔧 ตัวอย่าง 3: สำรองข้อมูลอัตโนมัติ

ปัญหา: กลัวข้อมูลหาย คนในทีมแก้ไขผิดแล้วกู้คืนไม่ได้

วิธีแก้: ให้ Script copy ข้อมูลไปไฟล์สำรองอัตโนมัติทุกวัน

Script สำรองข้อมูลไปชีตใหม่

function backupData() {
  var source = SpreadsheetApp.getActiveSheet();
  var backup = SpreadsheetApp.openById("ID_ชีต_สำรอง");

  // สร้างชีตใหม่ชื่อตามวันที่
  var today = new Date().toLocaleDateString("th-TH");
  var newSheet = backup.insertSheet("Backup " + today);

  // copy ข้อมูลทั้งหมด
  var data = source.getDataRange().getValues();
  newSheet.getRange(1, 1, data.length, data[0].length)
    .setValues(data);

  Logger.log("สำรองข้อมูลเรียบร้อย: " + data.length + " แถว");
}
Script สำรองข้อมูล Google Sheets อัตโนมัติ
ข้อมูลถูกสำรองไปชีตใหม่อัตโนมัติ — ไม่ต้องกลัวข้อมูลหายอีกต่อไป

🚀 Pro Tips สำหรับ Apps Script

1.

ใช้ getValues() แทน getValue() ทีละเซลล์

อ่านข้อมูลเป็นก้อนทีเดียว เร็วกว่า 100 เท่า — ถ้ามี 1,000 แถว ต่างกันชัดมาก

2.

ส่ง LINE Notify ได้ด้วย UrlFetchApp

ไม่ใช่แค่ email — ส่งแจ้งเตือนเข้า LINE กลุ่มก็ทำได้ ใช้ UrlFetchApp.fetch() เรียก LINE Notify API

3.

Debug ด้วย Logger.log() + ดูใน Execution Log

พิมพ์ค่าตัวแปรออกมาดูได้ เหมือน console.log ใน JavaScript ดูผลที่เมนู Executions ด้านซ้าย

4.

onEdit(e) trigger ทำงานทันทีเมื่อแก้ไขข้อมูล

ใช้บันทึกเวลาอัพเดท, เปลี่ยนสีอัตโนมัติ, ส่งแจ้งเตือนเมื่อมีคนแก้ข้อมูลสำคัญ

5.

อ่าน/เขียนข้อมูลเป็นก้อน ไม่ใช่ทีละเซลล์

Best practice สำคัญที่สุด — ใช้ getValues()/setValues() กับ range ใหญ่ แทนการวน loop ทีละเซลล์

❓ ผิดบ่อย + วิธีแก้

"Authorization required"

เจอตอนรัน Script ครั้งแรก — เพราะต้องขออนุญาตเข้าถึง Sheets, Gmail ฯลฯ

วิธีแก้: คลิก "Review Permissions" → เลือกบัญชี Google → คลิก "Allow" ทำครั้งเดียวต่อ Script

"TypeError: Cannot read properties of null"

เจอเมื่อ Script หาชีตหรือ range ไม่เจอ — ชื่อผิด หรือชีตไม่มีจริง

วิธีแก้: เช็คชื่อ Sheet/Range ว่าตรงกับในไฟล์จริงไหม — ตัวพิมพ์เล็ก-ใหญ่สำคัญ!

"Exceeded maximum execution time"

Script รันนานเกิน 6 นาที (ข้อจำกัดของ Google) — มักเกิดจากวน loop มากเกินไป

วิธีแก้: ใช้ getValues()/setValues() อ่าน-เขียนเป็นก้อน แทนทีละเซลล์ หรือแบ่ง batch ทำทีละ 500 แถว

สรุป

Google Apps Script ไม่ได้ยากอย่างที่คิด — แค่รู้ว่า Extensions > Apps Script อยู่ตรงไหนแล้วเริ่มจาก Script ง่ายๆ 5-10 บรรทัด ก็สร้างระบบอัตโนมัติที่ประหยัดเวลาได้มหาศาล

เริ่มจาก Script เล็กๆ → ส่ง email อัตโนมัติ → ตั้ง Trigger รันทุกวัน → สำรองข้อมูล — แค่นี้ก็เปลี่ยนวิธีทำงานไปเลย

ต้องการ Automation ขั้นสูงกว่านี้?

เรียนรู้ Apps Script แบบครบถ้วน พร้อมเทมเพลตระบบสำเร็จรูปสำหรับธุรกิจ

📸 ภาพหน้าจอจาก Google Sheets จริง

ภาพถ่ายตรงจาก Google Sheets ที่ใช้งานได้จริงทันที — ไม่ใช่ภาพ mockup

google-apps-script-automation step 1
ภาพหน้าจอจริงจาก Google Sheets — แท็บ 1
google-apps-script-automation step 2
ภาพหน้าจอจริงจาก Google Sheets — แท็บ 2
google-apps-script-automation step 3
ภาพหน้าจอจริงจาก Google Sheets — แท็บ 3

อยากสร้างระบบจริงด้วย Google Sheets?

คู่มือฉบับสมบูรณ์ สอนสร้างระบบ step-by-step ตั้งแต่เริ่มต้นจนใช้งานได้จริง พร้อมเทมเพลตและไฟล์ตัวอย่างครบ

ดาวน์โหลดทันทีหลังชำระเงิน ไม่มีค่าสมัครรายเดือน

บทความที่เกี่ยวข้อง

เครื่องมือแนะนำ

ถ้าบทความนี้มีประโยชน์ ช่วยแชร์ให้เพื่อนๆ ด้วย