
Nếu bạn nhận thấy mình đang lặp đi lặp lại cùng một chuỗi thao tác nhấp chuột, các bước định dạng và điều chỉnh dữ liệu trong Excel ngày qua ngày, bạn đang lãng phí khoảng thời gian quý giá. Tin vui là Excel có sẵn một "máy ghi âm" tích hợp có thể ghi nhớ những hành động này và phát lại chúng chỉ trong tích tắc. Công cụ này được gọi là Macro.
Học cách sử dụng macro trong Excel thường là bước nhảy vọt lớn nhất giúp một người dùng bảng tính cơ bản trở thành chuyên gia. Tự động hóa giúp loại bỏ các lỗi nhập liệu thủ công, đảm bảo tính nhất quán và giải phóng thời gian cho các phân tích quan trọng hơn. Thực tế, học tự động hóa bằng macro là cách nhiều chuyên gia cắt giảm đáng kể khối lượng công việc—bạn thậm chí có thể đọc về cách một startup tiết kiệm 20 giờ mỗi tuần nhờ tự động hóa Excel.
Trong bài hướng dẫn toàn diện này, chúng tôi sẽ giúp bạn hiểu rõ macro là gì, cách bật các công cụ cần thiết, cũng như cách ghi, chạy và chỉnh sửa macro Excel đầu tiên của bạn.
Về cơ bản, macro là một chuỗi các hành động hoặc lệnh được ghi lại mà bạn có thể thực thi như một lệnh duy nhất. Ở hậu trường, khi bạn ghi một macro, Excel sẽ dịch các thao tác nhấp chuột và gõ phím của bạn sang một ngôn ngữ lập trình gọi là VBA (Visual Basic for Applications).
Bạn không cần phải biết cách viết mã VBA để tạo ra các macro cực kỳ hiệu quả. Bằng cách sử dụng Macro Recorder (Trình ghi Macro), bạn chỉ cần thực hiện công việc của mình một cách bình thường—như áp dụng định dạng in đậm, chèn hàm IF hoặc SUM, hay điều chỉnh độ rộng cột—và Excel sẽ tự động viết mã cần thiết cho bạn.
Theo mặc định, các công cụ cần thiết để ghi và quản lý macro bị ẩn trong Excel để ngăn người mới bắt đầu vô tình làm thay đổi sổ làm việc của họ. Bước đầu tiên của bạn là bật thẻ Developer.
Bây giờ, bạn sẽ thấy thẻ Developer nằm trên thanh ruy-băng Excel cạnh thẻ View hoặc Help. Thẻ này là trung tâm điều khiển cho mọi thứ liên quan đến macro và tự động hóa.
Hãy cùng xem qua một ví dụ thực tế. Tưởng tượng bạn xuất một báo cáo dữ liệu bán hàng từ phần mềm của công ty vào mỗi buổi sáng. Dữ liệu thô luôn trông lộn xộn: các cột quá hẹp, tiêu đề chưa được định dạng và bạn luôn phải thêm một hàng tổng cộng ở dưới cùng bằng hàm SUM.
Thay vì thực hiện thủ công mỗi ngày, chúng ta sẽ ghi một macro để định dạng báo cáo này ngay lập tức.
Trước khi bấm ghi, việc lên kế hoạch cho các bước thực hiện là rất quan trọng. Trình ghi Macro rất máy móc; nó ghi lại cả những lỗi sai, những cú nhấp chuột thừa và thao tác cuộn chuột. Việc biết trước trình tự sẽ đảm bảo bạn có một macro rõ ràng, hiệu quả.
Trong ví dụ này, chúng ta sẽ giả sử bạn có dữ liệu từ cột A đến D, với tiêu đề ở Hàng 1. Các bước dự kiến là:
=SUM(D2:D100) (giả sử dữ liệu của bạn kéo dài đến hàng 100). Nhấn Enter.Xin chúc mừng! Bạn đã ghi thành công macro đầu tiên của mình.
Để kiểm tra sức mạnh của công cụ bạn vừa tạo, hãy hoàn tác (undo) các định dạng. Nhấn Ctrl + Z nhiều lần cho đến khi dữ liệu quay lại trạng thái thô, lộn xộn ban đầu. Giờ hãy chạy macro để xem Excel làm việc thay bạn.
Trong vòng chưa đầy một giây, Excel sẽ tự động chọn tiêu đề, áp dụng định dạng in đậm và tô màu xanh lam, thay đổi kích thước cột và chèn hàm SUM. Một nhiệm vụ mất 30 giây làm thủ công giờ chỉ diễn ra trong vài mili-giây.
Bạn không cần phải là một lập trình viên mới có thể xem phần "hậu trường". Việc hiểu đoạn mã mà Excel tạo ra sẽ giúp bạn thực hiện những chỉnh sửa nhỏ mà không cần phải ghi lại toàn bộ macro.
Để xem mã, hãy vào thẻ Developer và nhấp vào Visual Basic (hoặc nhấn Alt + F11). Thao tác này sẽ mở Trình soạn thảo VBA. Ở phía bên trái, nhấp đúp vào Modules, sau đó chọn Module1. Bạn sẽ thấy một đoạn mã trông như thế này:
Sub FormatDailyReport()
'
' FormatDailyReport Macro
' Formats headers, autofits columns, and adds a total.
'
Rows("1:1").Select
Selection.Font.Bold = True
With Selection.Interior
.ThemeColor = xlThemeColorLight2
.TintAndShade = 0
End With
Columns("A:D").Select
Selection.EntireColumn.AutoFit
Range("D101").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-99]C:R[-1]C)"
End Sub
Ngay cả khi không biết VBA, bạn vẫn có thể đọc được logic ở đây. Rows("1:1").Select nghĩa là Excel đã chọn hàng đầu tiên. Selection.Font.Bold = True nghĩa là in đậm hàng đó. Nếu muốn thay đổi các cột được chọn từ A đến F thay vì A đến D, bạn chỉ cần thay đổi thủ công đoạn Columns("A:D").Select thành Columns("A:F").Select trong trình soạn thảo văn bản và nhấn lưu.
Nếu bạn quan tâm đến việc học cách tự viết các tập lệnh này từ đầu, việc đọc tài liệu về những điều cơ bản về VBA là một bước tiếp theo tuyệt vời.
Một trong những trở ngại phổ biến nhất đối với người mới bắt đầu liên quan đến cách macro chọn ô. Theo mặc định, Trình ghi Macro sử dụng Tham chiếu Tuyệt đối (Absolute References). Điều này có nghĩa là nếu bạn nhấp vào ô B5 trong khi ghi, macro sẽ luôn luôn nhấp vào chính xác ô B5 mỗi khi chạy, bất kể con trỏ chuột của bạn đang ở đâu.
Đôi khi, bạn muốn macro định dạng một ô tương ứng với vị trí hiện tại của con trỏ. Để làm được điều này, bạn cần bật tính năng Use Relative References (Sử dụng Tham chiếu Tương đối, nằm ngay dưới nút Record Macro trong thẻ Developer) trước khi bắt đầu ghi.
Nếu chưa quen với khái niệm này, bạn có thể ôn lại về tham chiếu tương đối và tuyệt đối để hiểu cách Excel xử lý vị trí. Dưới đây là bảng so sánh nhanh về cách hai chế độ này hoạt động trong trình ghi macro:
| Chế độ Ghi | Cách hoạt động | Phù hợp nhất cho... |
|---|---|---|
| Tham chiếu Tuyệt đối (Mặc định) | Ghi lại địa chỉ ô chính xác (ví dụ: Range("C10").Select). Macro sẽ luôn quay lại ô C10. | Định dạng tiêu đề cố định, áp dụng hàm VLOOKUP vào một bảng dữ liệu tĩnh cụ thể hoặc đặt tiêu đề vào ô A1. |
| Tham chiếu Tương đối | Ghi lại khoảng cách (độ dời) từ ô hiện tại (ví dụ: ActiveCell.Offset(1, 0).Select). | Tạo các macro định dạng "hàng tiếp theo phía dưới" hoặc áp dụng một kiểu định dạng cụ thể cho bất kỳ ô nào bạn đang chọn. |
Để đảm bảo các macro của bạn luôn hoạt động trơn tru, hãy ghi nhớ những phương pháp cơ bản sau:
Ghi macro là điểm khởi đầu hoàn hảo cho việc tự động hóa bảng tính. Khi đã thành thạo trình ghi, bạn sẽ tự nhiên phát hiện ra những điểm thắt cổ chai khác trong công việc hàng tuần của mình. Cuối cùng, bạn có thể chuyển sang bước tự động hóa báo cáo hoàn toàn bằng Excel VBA, nơi việc lấy, làm sạch và gửi dữ liệu qua email diễn ra hoàn toàn tự động mà không cần can thiệp.
Tuy nhiên, việc học cú pháp lập trình không dành cho tất cả mọi người. Nếu bạn gặp khó khăn trong việc tìm ra các hàm INDEX, MATCH hoặc IF chính xác để đưa vào macro của mình, bạn không cần phải dành hàng giờ đồng hồ để tìm kiếm trên Google. Thay vào đó, chỉ cần mô tả những gì bạn muốn đạt được bằng ngôn ngữ thông thường cho GPTExcel, và nó sẽ tạo ngay lập tức công thức hoàn hảo hoặc đoạn mã VBA để bạn dán vào sổ làm việc của mình.
Bằng cách kết hợp Trình ghi Macro có sẵn với các công cụ AI hiện đại, bạn có thể tự động hóa hầu hết mọi tác vụ lặp đi lặp lại trong công việc, mang lại cho bạn nhiều thời gian hơn để tập trung vào những việc thực sự quan trọng.
Những macro do chính bạn ghi lại là hoàn toàn an toàn. Tuy nhiên, vì VBA là một ngôn ngữ lập trình mạnh mẽ, mã độc có thể được bên thứ ba viết vào các macro. Bạn chỉ nên chạy các macro từ những sổ làm việc tải xuống từ nguồn đáng tin cậy. Đó là lý do tại sao Excel mặc định vô hiệu hóa macro và hiển thị cảnh báo bảo mật khi bạn mở tệp .xlsm.
Không. Bạn không thể sử dụng nút Hoàn tác (Ctrl + Z) để đảo ngược các hành động của một macro. Trước khi thử nghiệm một macro mới trên dữ liệu quan trọng, tốt nhất bạn nên lưu một bản sao dự phòng cho sổ làm việc của mình. Nếu macro hoạt động không như mong muốn, bạn chỉ cần đóng tệp mà không lưu và mở lại bản sao dự phòng.
Các tệp Excel tiêu chuẩn (.xlsx) bị loại bỏ mọi đoạn mã vì lý do bảo mật. Nếu bạn cố gắng lưu một sổ làm việc chứa macro dưới dạng tệp .xlsx, Excel sẽ hiển thị một cảnh báo. Để giữ lại các macro đã ghi, bạn phải thay đổi menu thả xuống "Save as type" (Lưu dưới dạng) thành "Excel Macro-Enabled Workbook (*.xlsm)".
Chắc chắn là có. Khi ghi macro, bất kỳ công thức nào bạn nhập vào một ô—cho dù đó là một hàm SUM đơn giản hay một câu lệnh IF lồng nhau phức tạp—đều sẽ được ghi lại. Khi bạn chạy macro sau này, Excel sẽ chèn chính xác công thức đó vào ô được chỉ định và tính toán kết quả ngay lập tức.
Khám phá cách tự động hóa các tác vụ Excel không cần VBA bằng Power Automate. Học cách tạo luồng kích hoạt theo sự kiện, xử lý dữ liệu và kết nối ứng dụng khác.
Khám phá cách xây dựng hệ thống báo cáo tự động trong Excel bằng VBA. Học cách trích xuất dữ liệu, chèn công thức, định dạng ô và xuất báo cáo với mã code chi tiết từng bước.
Bắt đầu lập trình trong Excel với VBA. Tìm hiểu về thẻ Nhà phát triển, biến, vòng lặp, điều kiện và cách viết macro đầu tiên của bạn từ con số không.