
Excel VBA và Google Apps Script đều được dùng để tự động hóa tác vụ, tạo hàm tùy chỉnh, tích hợp với các nền tảng khác nhau, v.v. Tuy nhiên, tự động hóa là tính năng mạnh mẽ nhất được cung cấp bởi cả Excel VBA và Google Apps Script để nâng cao năng suất. Trong bài viết này, chúng ta sẽ so sánh ưu, nhược điểm và trường hợp sử dụng của Excel VBA và Google Apps Script với các ví dụ thực tế. Bài viết này sẽ giúp bạn quyết định sử dụng cái nào dựa trên yêu cầu của bạn.
Excel VBA và Google Apps Script là gì?
- Excel VBA: Visual Basic Application (VBA) là ngôn ngữ lập trình tích hợp sẵn trong Microsoft Excel. Nó cho phép người dùng tự động hóa tác vụ, tạo hàm tùy chỉnh và mở rộng khả năng của Excel.
- Google Apps Script: Apps Script là công cụ kịch bản dựa trên đám mây sử dụng ngôn ngữ JavaScript trên tất cả các ứng dụng Google Workspace. Nó cho phép bạn tự động hóa tác vụ và tích hợp dịch vụ.
Ưu và Nhược điểm của Excel VBA
Ưu điểm
- VBA hỗ trợ tích hợp sâu với các tính năng của Excel, cho phép tự động hóa tác vụ phức tạp.
- Nó cung cấp tiện ích bổ sung Excel tùy chỉnh và tùy chỉnh giao diện người dùng.
- Nó hoạt động mà không cần kết nối internet.
- Vì được giới thiệu sớm hơn, bạn sẽ có hàng nghìn giải pháp VBA hiện có và hỗ trợ cộng đồng mạnh mẽ.
Nhược điểm
- Giới hạn trên Windows vì VBA không chạy trên Excel cho Web hoặc hầu hết các phiên bản macOS.
- Trình soạn thảo VBA thiếu các tính năng IDE hiện đại như tự động hoàn thành.
- Yêu cầu học một ngôn ngữ cụ thể (Visual Basic). Cú pháp VBA kém thân thiện với người mới hơn JavaScript
- Tương thích hạn chế trên các nền tảng không phải Microsoft.
Bạn có thể sử dụng Excel VBA để tự động hóa tác vụ khi làm việc ngoại tuyến. Để tạo các giải pháp Excel phức tạp như bảng điều khiển, bảng pivot và hàm tùy chỉnh. Excel xây dựng các mô hình tài chính hoặc thống kê mạnh mẽ. Excel có thể xử lý dữ liệu nặng và lớn.
Ưu và Nhược điểm của Google Apps Script
Ưu điểm
- Hoạt động trên bất kỳ thiết bị nào có truy cập internet. Cho phép cộng tác thời gian thực với nhiều người dùng.
- Apps Script dựa trên JavaScript, một ngôn ngữ lập trình phổ biến và linh hoạt.
- Tích hợp liền mạch với Google Workspace (Docs, Sheets, Drive) và API bên ngoài.
- Dễ dàng gửi email tự động.
- Kịch bản chạy trên đám mây, giảm sử dụng tài nguyên cục bộ.
Nhược điểm
- Yêu cầu kết nối internet ổn định.
- Hiệu suất chậm hơn cho tác vụ nặng. Không thể xử lý xử lý dữ liệu lớn.
- Không hỗ trợ một số tính năng bảng tính nâng cao tìm thấy trong Excel.
- Yêu cầu quyền tài khoản Google, có thể làm phức tạp cộng tác trong môi trường bị hạn chế.
Bạn có thể sử dụng Google Sheets cho các dự án cộng tác, để có truy cập đa nền tảng. Để tự động hóa quy trình làm việc sử dụng Google Workspace và API bên ngoài. Nó thực hiện các thao tác dữ liệu đơn giản.
Trường hợp Sử dụng: Làm nổi bật Nhiệm vụ Quá hạn và Gửi Email Tự động
Hãy chỉ cho bạn các trường hợp sử dụng đơn giản và thực tế cho cả Excel VBA và Google Apps Script để chứng minh khả năng độc đáo của chúng. Xét bạn có một bộ theo dõi nhiệm vụ nơi bạn liệt kê mọi thứ về nhiệm vụ của bạn như Nhiệm vụ, Ngày bắt đầu, Ngày kết thúc, Trạng thái, Được giao cho, địa chỉ Email thành viên nhóm, v.v.
Excel VBA
Excel VBA sẽ làm nổi bật ngày đến hạn và gửi cảnh báo email khi nhiệm vụ quá hạn bằng Outlook.
- Vào tab Nhà phát triển >> chọn Visual Basic.
- Trong trình soạn thảo VBA, vào tab Chèn >> chọn Module.
- Chèn mã VBA sau vào Module.

Mã 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
Giải thích:
- Thiết lập Worksheet: Sheet Tasks được tham chiếu, và hàng cuối cùng có dữ liệu được xác định.
- Khởi tạo Outlook: Kiểm tra xem Outlook có được cài đặt không và thiết lập đối tượng ứng dụng Outlook.
- Lặp qua Nhiệm vụ:
- Lặp qua từng nhiệm vụ.
- Lấy chi tiết như tên nhiệm vụ, ngày kết thúc, người được giao, email và trạng thái.
- Kiểm tra Nhiệm vụ Quá hạn: Nếu nhiệm vụ quá hạn (Ngày kết thúc < Hôm nay) và không được đánh dấu "Hoàn thành," các hành động sau xảy ra:
- Làm nổi bật Đỏ: Ô Ngày kết thúc được tô màu đỏ (RGB(255, 0, 0)).
- Gửi Email: Tạo và gửi email sử dụng Outlook với chi tiết nhiệm vụ.
- Dọn dẹp: Giải phóng đối tượng Outlook và hiển thị thông báo xác nhận.
- Lưu và Chạy mã. Quay lại worksheet của bạn.
Mã này tự động hóa cả nhắc nhở nhiệm vụ qua email và làm nổi bật ngày quá hạn trong Excel.
Đầu ra:

Thông tin chi tiết VBA:
- Yêu cầu Microsoft Excel và Outlook được cài đặt trên cùng một hệ thống.
- Đọc dữ liệu nhiệm vụ từ Excel, kiểm tra nhiệm vụ quá hạn, làm nổi bật chúng bằng màu đỏ và gửi email qua Outlook.
- Nó yêu cầu nhiều thiết lập hơn, vì bạn cần đảm bảo cấu hình đúng của Outlook và địa chỉ email hợp lệ.
- Nhạy cảm với lỗi thời gian chạy nếu địa chỉ email hoặc Outlook không được thiết lập đúng cách.
Google Apps Script
Sử dụng Google Apps Script gửi cảnh báo email cho nhiệm vụ quá hạn bằng Gmail.
Các bước:
- Vào menu Tiện ích mở rộng >> chọn Apps Script.
- Chèn kịch bản sau vào trình soạn thảo mã.
Mã Apps Script:
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!"); }
Giải thích:
- Thiết lập Sheet: Truy cập sheet Tasks và lấy tất cả dữ liệu.
- Lặp qua Nhiệm vụ: Lặp qua từng hàng bắt đầu từ hàng thứ hai.
- Kiểm tra Nhiệm vụ Quá hạn: Nếu Ngày kết thúc đã qua và trạng thái không phải "Hoàn thành":
- Làm nổi bật ô Ngày kết thúc bằng đỏ.
- Gửi thông báo email đến người được giao sử dụng Gmail.
- Hoàn thành: Hiển thị thông báo thành công sau khi xử lý.
Chạy mã và quay lại sheet của bạn để xem cập nhật. Kiểm tra tài khoản mail của bạn để xem thông báo email.
Đầu ra:


Thông tin chi tiết Google Apps Script:
- Chạy trực tiếp trong Google Sheets, sử dụng Gmail để gửi email.
- Đọc dữ liệu nhiệm vụ, làm nổi bật nhiệm vụ quá hạn bằng màu đỏ và gửi email qua Gmail.
- Thiết lập đơn giản hơn vì Gmail sẵn sàng trong hệ sinh thái Google.
- Không phụ thuộc vào phần mềm bổ sung như Outlook, làm cho nó nhẹ nhàng.
Kết luận
Excel VBA là công cụ mạnh mẽ cho các tác vụ ngoại tuyến và các hoạt động đặc thù Excel phức tạp, chẳng hạn như xây dựng báo cáo nâng cao và thao tác tập dữ liệu lớn, tạo tiện ích bổ sung, v.v.
Google Apps Script hữu ích trong môi trường dựa trên đám mây, đặc biệt khi làm việc trên nhiều nền tảng và tích hợp với các ứng dụng Google Workspace.
Những ví dụ đơn giản này trình bày thế mạnh của từng công cụ, giúp dễ dàng hơn chọn cái phù hợp dựa trên yêu cầu của bạn.
Nhận bài tập Excel nâng cao miễn phí kèm lời giải!