Chuyển tới nội dung chính

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ôngThời gianSau khi tự động hóa
Định dạng báo cáo hàng tuần15-30 phút2 giây (1 click)
Xóa cột thừa + chèn tiêu đề5-10 phút1 giây
Tạo 12 Sheet cho 12 tháng10 phút3 giây
Gửi email thông báo từ Excel30 phút5 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:

  1. FileOptionsCustomize Ribbon.
  2. Ở cột bên phải, tick Developer.
  3. 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

  1. Tab DeveloperRecord Macro.
  2. Đặt tên Macro (không dấu cách, ví dụ: DinhDangBaoCao).
  3. Gán phím tắt (tùy chọn, ví dụ: Ctrl + Shift + D).
  4. Chọn lưu tại: This Workbook (chỉ file này) hoặc Personal Macro Workbook (dùng cho mọi file).
  5. 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 DeveloperStop 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 DeveloperMacros → 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

  1. Tab DeveloperInsertButton (Form Control).
  2. Vẽ nút trên Sheet.
  3. Hộp thoại hiện ra → chọn Macro cần gán → OK.
  4. Đổ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 DeveloperVisual Basic.
  • Hoặc phím tắt: Alt + F11.

Cấu trúc VBA Editor

VùngChứ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 SubKhối thủ tục (Macro)
' commentDòng ghi chú (Excel bỏ qua)
.SelectChọn đối tượng
Selection.Thao tác trên vùng đang chọn
.Font.Bold = TrueBậ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

FileOptionsTrust CenterTrust Center SettingsMacro Settings:

MứcÝ nghĩa
Disable allTắt hoàn toàn Macro (an toàn nhất)
Disable with notificationTắt nhưng có thông báo cho phép bật (khuyến nghị)
Disable except signedChỉ chạy Macro có chữ ký số
Enable allBật tất cả (không khuyến nghị – rủi ro bảo mật)

Bài tập thực hành

  1. Bật tab Developer nếu chưa có.
  2. Ghi Macro "DinhDangBaoCao": In đậm dòng 1, tô nền, chữ trắng, kẻ bảng, auto-fit cột.
  3. Gán Macro vào phím tắt Ctrl + Shift + F.
  4. Tạo nút bấm trên Sheet để chạy Macro.
  5. Mở VBA Editor, đọc hiểu code đã ghi, thêm MsgBox thông báo hoàn tất.
  6. 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