
ทั้ง Excel VBA และ Google Apps Script ใช้ในการทำงานอัตโนมัติ สร้างฟังก์ชันที่กำหนดเอง ผสานรวมกับแพลตฟอร์มต่างๆ ฯลฯ อย่างไรก็ตาม ระบบอัตโนมัติเป็นคุณลักษณะที่ทรงพลังที่สุดที่ทั้ง Excel VBA และ Google Apps Script นำเสนอเพื่อปรับปรุงประสิทธิภาพการทำงาน ในบทความนี้ เราจะเปรียบเทียบข้อดี ข้อเสีย และกรณีการใช้งานของ Excel VBA และ Google Apps Script กับตัวอย่างที่ใช้งานได้จริง บทความนี้จะช่วยคุณตัดสินใจว่าจะใช้อันไหนตามความต้องการของคุณ
สคริปต์ Excel VBA และ Google Apps คืออะไร
- Excel VBA :Visual Basic Application (VBA) เป็นภาษาการเขียนโปรแกรมในตัวใน Microsoft Excel ช่วยให้ผู้ใช้สามารถทำงานอัตโนมัติ สร้างฟังก์ชันที่กำหนดเอง และเพิ่มขีดความสามารถของ Excel
- สคริปต์ของ Google Apps :Apps Script เป็นเครื่องมือเขียนสคริปต์ในระบบคลาวด์ที่ใช้ภาษา JavaScript ในแอป Google Workspace ทั้งหมด ช่วยให้คุณทำงานอัตโนมัติและผสานรวมบริการได้
ข้อดีข้อเสียของ Excel VBA
ข้อดี ป>
- VBA รองรับการผสานรวมเชิงลึกกับฟีเจอร์ของ Excel ช่วยให้งานที่ซับซ้อนเป็นอัตโนมัติ
- นำเสนอโปรแกรมเสริม Excel แบบกำหนดเองและการปรับแต่ง UI
- ใช้งานได้โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต
- ตามที่เปิดตัวไปก่อนหน้านี้ คุณจะได้รับโซลูชัน VBA ที่มีอยู่หลายพันรายการและการสนับสนุนจากชุมชนที่แข็งแกร่ง
ข้อเสีย ป>
- จำกัดเฉพาะ Windows เนื่องจาก VBA ไม่ทำงานบน Excel สำหรับเว็บหรือ macOS เวอร์ชันส่วนใหญ่
- ตัวแก้ไข VBA ขาดฟีเจอร์ IDE สมัยใหม่ เช่น การเติมข้อความอัตโนมัติ
- ต้องเรียนรู้ภาษาเฉพาะ (Visual Basic) ไวยากรณ์ VBA นั้นเป็นมิตรกับผู้เริ่มต้นน้อยกว่า JavaScript
- ความเข้ากันได้มีจำกัดในแพลตฟอร์มที่ไม่ใช่ของ Microsoft
คุณสามารถใช้ Excel VBA เพื่อทำงานอัตโนมัติเมื่อทำงานแบบออฟไลน์ เพื่อสร้างโซลูชัน Excel ที่ซับซ้อน เช่น แดชบอร์ด ตารางสรุปข้อมูล และฟังก์ชันแบบกำหนดเอง Excel สร้างแบบจำลองทางการเงินหรือสถิติที่มีประสิทธิภาพ Excel สามารถประมวลผลข้อมูลจำนวนมากและหนักได้
ข้อดีข้อเสียของสคริปต์ Google Apps
ข้อดี ป>
- ทำงานบนอุปกรณ์ทุกชนิดที่มีอินเทอร์เน็ต เปิดใช้งานการทำงานร่วมกันแบบเรียลไทม์กับผู้ใช้หลายคน
- Apps Script ขึ้นอยู่กับ JavaScript ซึ่งเป็นภาษาการเขียนโปรแกรมที่หลากหลายและได้รับความนิยม
- ผสานรวมกับ Google Workspace (เอกสาร ชีต ไดรฟ์) และ API ภายนอกได้อย่างราบรื่น
- ส่งอีเมลอัตโนมัติได้ง่าย
- สคริปต์ทำงานบนคลาวด์ ช่วยลดการใช้ทรัพยากรในท้องถิ่น
ข้อเสีย ป>
- ต้องมีการเชื่อมต่ออินเทอร์เน็ตที่เสถียร
- ประสิทธิภาพช้าลงสำหรับงานหนัก ไม่สามารถจัดการกับการประมวลผลข้อมูลขนาดใหญ่ได้
- ไม่สนับสนุนคุณลักษณะสเปรดชีตขั้นสูงบางอย่างที่พบใน Excel
- ต้องได้รับอนุญาตจากบัญชี Google ซึ่งอาจทำให้การทำงานร่วมกันในสภาพแวดล้อมที่จำกัดยุ่งยาก
คุณสามารถใช้ Google ชีตสำหรับโครงการที่ทำงานร่วมกันเพื่อเข้าถึงข้ามแพลตฟอร์ม เพื่อทำให้เวิร์กโฟลว์เป็นอัตโนมัติโดยใช้ Google Workspace และ API ภายนอก มันดำเนินการข้อมูลอย่างง่าย
กรณีการใช้งาน:เน้นงานที่ค้างชำระและส่งอีเมลโดยอัตโนมัติ
เราจะแสดงกรณีการใช้งานที่เรียบง่ายและใช้งานได้จริงสำหรับทั้ง Excel VBA และ Google Apps Script เพื่อแสดงความสามารถเฉพาะตัว พิจารณาว่าคุณมีตัวติดตามงานที่คุณแสดงรายการทุกอย่างเกี่ยวกับงานของคุณ เช่น งาน วันที่เริ่มต้น วันที่สิ้นสุด สถานะ มอบหมายให้ ที่อยู่อีเมลของสมาชิกในทีม ฯลฯ
เอ็กเซล VBA
Excel VBA จะเน้นวันที่ครบกำหนดและส่งการแจ้งเตือนทางอีเมลเมื่องานเกินกำหนดโดยใช้ Outlook
- ไปที่นักพัฒนาซอฟต์แวร์ แท็บ>> เลือก Visual Basic .
- ในตัวแก้ไข VBA ไปที่ แทรก แท็บ>> เลือก โมดูล .
- แทรกโค้ด VBA ต่อไปนี้ใน โมดูล .

รหัส VBA: ป>
Sub SendOverdueTaskEmails()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim taskName As String
Dim endDate As Date
Dim assignedTo As String
Dim emailAddress As String
Dim taskStatus As String
Dim todayDate As Date
' Set worksheet and determine the last row
Set ws = ThisWorkbook.Sheets("Tasks")
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
todayDate = Date
' Initialize Outlook application
On Error Resume Next
Set OutlookApp = CreateObject("Outlook.Application")
On Error GoTo 0
If OutlookApp Is Nothing Then
MsgBox "Outlook is not available. Please make sure Outlook is installed and configured.", vbCritical
Exit Sub
End If
' Loop through tasks in the dataset
For i = 2 To lastRow
taskName = ws.Cells(i, 2).Value
endDate = ws.Cells(i, 4).Value
assignedTo = ws.Cells(i, 5).Value
taskStatus = ws.Cells(i, 6).Value
emailAddress = ws.Cells(i, 7).Value
' Check if task is overdue and not completed
If endDate < todayDate And taskStatus <> "Completed" Then
' Highlight the due date cell in red
ws.Cells(i, 4).Interior.Color = RGB(255, 0, 0)
' Create the email
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = emailAddress
.Subject = "Overdue Task Notification: " & taskName
.Body = "Dear " & assignedTo & "," & vbCrLf & vbCrLf & _
"The task """ & taskName & """ was due on " & endDate & " and is now overdue." & vbCrLf & _
"Please review and update the status as soon as possible." & vbCrLf & vbCrLf & _
"Best regards," & vbCrLf & _
"Task Management Team"
.Send
End With
Set OutlookMail = Nothing
End If
Next i
' Clean up
Set OutlookApp = Nothing
MsgBox "Emails sent for overdue tasks!", vbInformation
End Sub
คำอธิบาย: ป>
- ตั้งค่าแผ่นงาน :มีการอ้างอิงแผ่นงานและกำหนดแถวสุดท้ายที่มีข้อมูล
- เริ่มต้น Outlook :ตรวจสอบว่าติดตั้ง Outlook แล้วและตั้งค่าออบเจ็กต์แอปพลิเคชัน Outlook
- วนซ้ำงานต่างๆ :
- วนซ้ำแต่ละงาน
- ดึงข้อมูลรายละเอียด เช่น ชื่องาน วันที่สิ้นสุด บุคคลที่มอบหมาย อีเมล และสถานะ
- ตรวจสอบงานที่ค้างชำระ :หากงานเกินกำหนด (วันที่สิ้นสุด <วันนี้) และไม่ได้ทำเครื่องหมายว่า "เสร็จสมบูรณ์" การกระทำต่อไปนี้จะเกิดขึ้น:
- ไฮไลต์เป็นสีแดง :เซลล์วันที่สิ้นสุดจะเป็นสีแดง (RGB(255, 0, 0))
- ส่งอีเมล :สร้างและส่งอีเมลโดยใช้ Outlook พร้อมรายละเอียดงาน
- การล้างข้อมูล :ปล่อยวัตถุ Outlook และแสดงข้อความยืนยัน
- บันทึก และ เรียกใช้ รหัส กลับไปที่แผ่นงานของคุณ
รหัสนี้แจ้งเตือนงานโดยอัตโนมัติผ่านทางอีเมลและไฮไลต์วันที่เกินกำหนดใน Excel
เอาต์พุต: ป>

ข้อมูลเชิงลึกของ VBA: ป>
- ต้องติดตั้ง Microsoft Excel และ Outlook บนระบบเดียวกัน
- อ่านข้อมูลงานจาก Excel ตรวจสอบงานที่เกินกำหนด ไฮไลต์เป็นสีแดง และส่งอีเมลผ่าน Outlook
- จำเป็นต้องมีการตั้งค่าเพิ่มเติม เนื่องจากคุณต้องแน่ใจว่าการกำหนดค่า Outlook และที่อยู่อีเมลที่ถูกต้องถูกต้อง
- มีความละเอียดอ่อนต่อข้อผิดพลาดรันไทม์หากที่อยู่อีเมลหรือ Outlook ไม่ได้ตั้งค่าอย่างถูกต้อง
สคริปต์ของ Google Apps
การใช้ Google Apps Script ส่งการแจ้งเตือนทางอีเมลสำหรับงานที่เกินกำหนดโดยใช้ Gmail
ขั้นตอน: ป>
- ไปที่ส่วนขยาย เมนู>> เลือก สคริปต์ Apps .
- แทรกสคริปต์ต่อไปนี้ลงในโปรแกรมแก้ไขโค้ด
โค้ดสคริปต์ของแอป: ป>
function sendOverdueTaskemail() {
// Open the active sheet
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Tasks");
// Get data range (assumes headers are in row 1)
const range = sheet.getDataRange();
const data = range.getValues();
// Loop through rows starting from row 2
for (let i = 1; i < data.length; i++) {
const taskName = data[i][1]; // Task Name in column B
const endDate = new Date(data[i][3]); // End Date in column D
const assignedTo = data[i][4]; // Assigned To in column E
const status = data[i][5]; // Status in column F
const email = data[i][6]; // Email Address in column G
// Check if the task is overdue and not completed
if (endDate < new Date() && status !== "Completed")
sheet.getRange(i + 1, 4).setBackground("red");
{
const subject = `Overdue Task Notification: ${taskName}`;
const body = `Dear ${assignedTo},\n\nThe task "${taskName}" was due on ${endDate.toDateString()} and is now overdue. Please review and update the status as soon as possible.\n\nBest regards,\nTask Management Team`;
// Send email
GmailApp.sendEmail(email, subject, body);
}
}
SpreadsheetApp.getUi().alert("Emails sent to the assigned individuals for overdue tasks!");
}
คำอธิบาย: ป>
- เอกสารการตั้งค่า :เข้าถึงแผ่นงานและดึงข้อมูลทั้งหมด
- วนซ้ำงานต่างๆ :วนซ้ำแต่ละแถวโดยเริ่มจากแถวที่สอง
- ตรวจสอบงานที่ค้างชำระ :หากเลยวันที่สิ้นสุดไปแล้วและสถานะไม่ "เสร็จสมบูรณ์":
- เน้นเซลล์วันที่สิ้นสุดด้วย สีแดง .
- ส่งการแจ้งเตือนทางอีเมลไปยังบุคคลที่ได้รับมอบหมายโดยใช้ Gmail
- เสร็จสิ้น :แสดงข้อความแสดงความสำเร็จหลังการประมวลผล
เรียกใช้โค้ดและกลับไปที่ชีตของคุณเพื่อดูการอัปเดต ตรวจสอบบัญชีอีเมลของคุณเพื่อดูการแจ้งเตือนทางอีเมล
เอาต์พุต: ป>


ข้อมูลเชิงลึกของสคริปต์ของ Google Apps: ป>
- ทำงานโดยตรงใน Google ชีตโดยใช้ Gmail เพื่อส่งอีเมล
- อ่านข้อมูลงาน ไฮไลต์งานที่ค้างชำระด้วยสีแดง และส่งอีเมลผ่าน Gmail
- การตั้งค่าง่ายขึ้นเนื่องจาก Gmail สามารถเข้าถึงได้ง่ายในระบบนิเวศของ Google
- ไม่ต้องพึ่งพาซอฟต์แวร์เพิ่มเติม เช่น Outlook ทำให้มีน้ำหนักเบา
บทสรุป
Excel VBA เป็นเครื่องมืออันทรงพลังสำหรับงานออฟไลน์และการดำเนินการเฉพาะของ Excel ที่ซับซ้อน เช่น การสร้างรายงานขั้นสูงและการจัดการชุดข้อมูลขนาดใหญ่ การสร้างส่วนเสริม ฯลฯ
Google Apps Script มีประโยชน์ในสภาพแวดล้อมระบบคลาวด์ โดยเฉพาะอย่างยิ่งเมื่อทำงานข้ามแพลตฟอร์มและผสานรวมกับแอป Google Workspace
ตัวอย่างง่ายๆ เหล่านี้แสดงให้เห็นถึงจุดแข็งของแต่ละเครื่องมือ ทำให้ง่ายต่อการเลือกเครื่องมือที่เหมาะสมตามความต้องการของคุณ
รับแบบฝึกหัด Excel ขั้นสูงพร้อมโซลูชันฟรี!