Bài 14: Tư Duy Tự Động Hóa Với Macro & VBA
Giai đoạn 3 – Nâng cao · Mục tiêu: Hiểu khái niệm tự động hóa, ghi Macro cho thao tác lặp và tiếp cận giao diện lập trình VBA.
1. Tự động hóa là gì?
Tự động hóa trong Excel là việc sử dụng công cụ để thực thi tự động các thao tác lặp đi lặp lại mà bạn vẫn làm thủ công hàng ngày.
Ví dụ các thao tác có thể tự động hóa
| Thao tác thủ công | Thời gian | Sau khi tự động hóa |
|---|---|---|
| Định dạng báo cáo hàng tuần | 15-30 phút | 2 giây (1 click) |
| Xóa cột thừa + chèn tiêu đề | 5-10 phút | 1 giây |
| Tạo 12 Sheet cho 12 tháng | 10 phút | 3 giây |
| Gửi email thông báo từ Excel | 30 phút | 5 giây |
2. Kích hoạt Tab Developer
Tab Developer mặc định bị ẩn. Cần bật lên trước khi sử dụng Macro:
File→Options→Customize Ribbon.- Ở cột bên phải, tick Developer.
- Click
OK.
Tab Developer xuất hiện trên Ribbon với các công cụ:
- Visual Basic: Mở trình soạn thảo VBA.
- Macros: Xem và chạy Macro.
- Record Macro: Ghi lại thao tác.
- Insert: Chèn nút bấm (Button), hộp kiểm (Checkbox)...
3. Record Macro – Ghi lại thao tác
Record Macro là gì?
Excel quan sát và ghi lại mọi thao tác bạn thực hiện trên bảng tính, sau đó chuyển chúng thành mã VBA. Lần sau, bạn chỉ cần chạy lại Macro để Excel tự động thực hiện toàn bộ.
Cách sử dụng
Bước 1: Bắt đầu ghi
- Tab
Developer→Record Macro. - Đặt tên Macro (không dấu cách, ví dụ:
DinhDangBaoCao). - Gán phím tắt (tùy chọn, ví dụ:
Ctrl + Shift + D). - Chọn lưu tại: This Workbook (chỉ file này) hoặc Personal Macro Workbook (dùng cho mọi file).
- Click
OK.
Bước 2: Thực hiện thao tác Làm mọi thao tác bạn muốn tự động hóa. Ví dụ:
- Chọn dòng 1 → In đậm → Tô nền xanh → Chữ trắng.
- Chọn toàn bộ → Auto-fit chiều rộng cột.
- Chọn vùng → Kẻ bảng All Borders.
Bước 3: Dừng ghi
- Tab
Developer→Stop Recording. - Hoặc click nút ở thanh trạng thái (góc trái dưới).
Chạy lại Macro
- Cách 1: Tab
Developer→Macros→ chọn Macro →Run. - Cách 2: Nhấn phím tắt đã gán (ví dụ:
Ctrl + Shift + D). - Cách 3: Gán Macro vào nút bấm (Button) trên Sheet.
Tạo nút bấm chạy Macro
- Tab
Developer→Insert→Button (Form Control). - Vẽ nút trên Sheet.
- Hộp thoại hiện ra → chọn Macro cần gán →
OK. - Đổi tên nút (ví dụ: " Định dạng báo cáo").
:::warning Lưu ý lưu file
File chứa Macro phải được lưu với định dạng .xlsm (Excel Macro-Enabled Workbook). Nếu lưu .xlsx, toàn bộ Macro sẽ bị mất!
:::
4. Giao diện VBA Editor
Mở VBA Editor
- Tab
Developer→Visual Basic. - Hoặc phím tắt:
Alt + F11.
Cấu trúc VBA Editor
| Vùng | Chức năng |
|---|---|
| Project Explorer (trái) | Danh sách các Module, Sheet, Workbook |
| Code Window (giữa) | Viết và sửa code VBA |
| Properties Window (dưới trái) | Thuộc tính của đối tượng đang chọn |
| Immediate Window (dưới) | Chạy lệnh nhanh, debug (Ctrl + G) |
Đọc hiểu Macro đã ghi
Khi ghi Macro, Excel tạo code VBA tương ứng. Ví dụ:
Sub DinhDangBaoCao()
'
' DinhDangBaoCao Macro
' Phím tắt: Ctrl+Shift+D
'
' Chọn dòng tiêu đề
Rows("1:1").Select
' In đậm
Selection.Font.Bold = True
' Tô nền xanh dương
With Selection.Interior
.Color = RGB(0, 112, 192)
End With
' Chữ trắng
Selection.Font.Color = RGB(255, 255, 255)
' Căn giữa
Selection.HorizontalAlignment = xlCenter
' Auto-fit cột
Cells.EntireColumn.AutoFit
End Sub
Giải thích cú pháp cơ bản
| Cú pháp | Ý nghĩa |
|---|---|
Sub ... End Sub | Khối thủ tục (Macro) |
' comment | Dòng ghi chú (Excel bỏ qua) |
.Select | Chọn đối tượng |
Selection. | Thao tác trên vùng đang chọn |
.Font.Bold = True | Bật in đậm |
.Interior.Color | Đặt màu nền |
RGB(R, G, B) | Mã màu (0-255 mỗi kênh) |
MsgBox "text" | Hiện hộp thoại thông báo |
5. Tinh chỉnh Macro đã ghi
Ví dụ: Thêm hộp thoại xác nhận
Sub DinhDangBaoCao()
' Hỏi xác nhận trước khi chạy
Dim answer As VbMsgBoxResult
answer = MsgBox("Bạn có muốn định dạng báo cáo?", vbYesNo + vbQuestion, "Xác nhận")
If answer = vbNo Then Exit Sub
' ... (code định dạng như trên)
MsgBox " Định dạng hoàn tất!", vbInformation, "Thành công"
End Sub
Ví dụ: Lặp qua các Sheet
Sub DinhDangTatCaSheet()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Rows("1:1").Font.Bold = True
ws.Cells.EntireColumn.AutoFit
Next ws
MsgBox "Đã định dạng " & ThisWorkbook.Worksheets.Count & " sheet!"
End Sub
6. Bảo mật Macro
Thiết lập Macro Security
File → Options → Trust Center → Trust Center Settings → Macro Settings:
| Mức | Ý nghĩa |
|---|---|
| Disable all | Tắt hoàn toàn Macro (an toàn nhất) |
| Disable with notification | Tắt nhưng có thông báo cho phép bật (khuyến nghị) |
| Disable except signed | Chỉ chạy Macro có chữ ký số |
| Enable all | Bật tất cả (không khuyến nghị – rủi ro bảo mật) |
Bài tập thực hành
- Bật tab Developer nếu chưa có.
- Ghi Macro "DinhDangBaoCao": In đậm dòng 1, tô nền, chữ trắng, kẻ bảng, auto-fit cột.
- Gán Macro vào phím tắt
Ctrl + Shift + F. - Tạo nút bấm trên Sheet để chạy Macro.
- Mở VBA Editor, đọc hiểu code đã ghi, thêm
MsgBoxthông báo hoàn tất. - Lưu file với định dạng
.xlsm.
:::info Chúc mừng! Bạn đã hoàn thành 14 bài học của lộ trình Excel từ Cơ bản đến Nâng cao! Hãy quay lại Roadmap để xem tổng quan và ôn tập lại những phần cần củng cố. :::
Bài trước: Bài 13 – Bảo Mật & Tối Ưu · Quay lại: Roadmap