Mười mẹo mã hóa macro VBA trong Excel

0
19


Mười mẹo thông thường giúp viết mã VBA trong Excel nhanh hơn và dễ dàng hơn. Những mẹo này dựa trên Excel 2010 (nhưng hoạt động ở hầu hết các phiên bản) và nhiều mẹo được lấy cảm hứng từ cuốn sách của O’Reilly “Excel 2010 – The Missing Manual” của Matthew MacDonald.

1 – Luôn kiểm tra macro của bạn trên bảng tính thử nghiệm dùng một lần, thường là bản sao của bảng tính được thiết kế để hoạt động. Hoàn tác không hoạt động với macro, vì vậy nếu bạn mã hóa một macro có khả năng gấp, xoay và cắt xén bảng tính của mình, bạn sẽ không gặp may trừ khi bạn làm theo lời khuyên này.

2 – Sử dụng phím tắt có thể nguy hiểm vì Excel không cảnh báo bạn nếu bạn chọn một phím tắt mà Excel đang sử dụng. Nếu điều này xảy ra, Excel sẽ sử dụng phím tắt cho macro chứ không phải phím tắt tích hợp sẵn. Hãy nghĩ xem sếp của bạn sẽ ngạc nhiên như thế nào khi bạn tải macro của mình và sau đó Ctrl-C thêm một số ngẫu nhiên vào một nửa số ô trong bảng tính của bạn.

Matthew MacDonald đưa ra gợi ý này trong “Excel 2010 – The Missing Manual.”

Dưới đây là một số tổ hợp phím phổ biến mà bạn không bao giờ nên gán cho phím tắt macro vì mọi người sử dụng chúng quá thường xuyên:

  • Ctrl+S (Lưu)
  • Ctrl+P (In)
  • Ctrl+O (Mở)
  • Ctrl+N (Mới)
  • Ctrl+X (Thoát)
  • Ctrl+Z (Hoàn tác)
  • Ctrl+Y (Làm lại/Lặp lại)
  • Ctrl+C (Sao chép)
  • Ctrl+X (Cắt)
  • Ctrl+V (Dán)

Để tránh sự cố, hãy luôn sử dụng tổ hợp phím macro Ctrl+Shift+chữ cái, vì các tổ hợp này ít phổ biến hơn nhiều so với tổ hợp phím tắt Ctrl+chữ cái. Và nếu nghi ngờ, đừng gán phím tắt khi bạn tạo một macro mới chưa được kiểm tra.

3 – Bạn không nhớ Alt-F8 (phím tắt macro mặc định)? Tên không có ý nghĩa gì với bạn? Vì Excel sẽ cung cấp macro của bất kỳ sổ làm việc đang mở nào cho tất cả các sổ làm việc khác hiện đang mở, nên cách dễ nhất là tạo thư viện macro của riêng bạn với tất cả macro của bạn trong một sổ làm việc riêng. Mở sổ làm việc đó cùng với các bảng tính khác của bạn. Như Matthew nói: “Giả sử bạn đang chỉnh sửa một sổ làm việc có tên là Sales Report.xlsx và bạn mở một sổ làm việc khác có tên là MyMacroCollection.xlsm, sổ làm việc này có chứa một số macro hữu ích. Bạn có thể sử dụng các macro có trong MyMacroCollection.xlsm với Sales Report.xlsx mà không cần móc”.Matthew cho biết thiết kế này giúp dễ dàng chia sẻ và sử dụng lại các macro giữa các sổ làm việc (và giữa những người khác nhau).

4 – Và cân nhắc việc thêm các nút để liên kết tới macro trong trang tính chứa thư viện macro của bạn. Bạn có thể sắp xếp các nút vào bất kỳ nhóm chức năng nào phù hợp với bạn và thêm văn bản vào trang tính để giải thích chức năng của chúng. Bạn sẽ không bao giờ thắc mắc macro có tên được mã hóa thực sự làm gì nữa.

5 – Kiến trúc bảo mật macro mới của Microsoft đã được cải thiện rất nhiều, nhưng thậm chí còn thuận tiện hơn khi yêu cầu Excel tin cậy các tệp trong các thư mục nhất định trên máy tính của bạn (hoặc trên các máy tính khác). Chọn một thư mục cụ thể trên ổ cứng của bạn làm vị trí đáng tin cậy. Nếu bạn mở một sổ làm việc được lưu trữ ở vị trí này, nó sẽ tự động được tin cậy.

6 – Khi bạn đang viết mã macro, đừng cố tạo vùng chọn các ô trong macro. Thay vào đó, giả sử rằng các ô được sử dụng bởi macro đã được chọn trước. Bạn có thể dễ dàng kéo chuột qua các ô để chọn chúng. Mã hóa một macro đủ linh hoạt để làm điều tương tự có khả năng đầy lỗi và khó lập trình. Nếu bạn muốn lập trình một cái gì đó, hãy cố gắng tìm ra cách viết mã xác thực để kiểm tra xem một lựa chọn thích hợp đã được thực hiện trong macro hay chưa.

7 – Bạn có thể nghĩ rằng Excel chạy macro trong sổ làm việc có chứa mã macro, nhưng điều này không phải lúc nào cũng đúng. Excel chạy macro trong sổ làm việc đang hoạt động . Đó là sổ làm việc mà bạn đã xem gần đây nhất. Như Matthew giải thích, “Nếu bạn có hai sổ làm việc đang mở và bạn sử dụng thanh tác vụ Windows để chuyển sang sổ làm việc thứ hai, rồi quay lại trình soạn thảo Visual Basic, thì Excel sẽ chạy macro trong sổ làm việc thứ hai.”

8 – Matthew gợi ý rằng, “Để làm cho các macro mã hóa dễ dàng hơn, hãy cố gắng sắp xếp các cửa sổ của bạn sao cho bạn có thể nhìn thấy cả cửa sổ Excel và cửa sổ trình soạn thảo Visual Basic cùng một lúc, cạnh nhau.” Nhưng Excel thì không (Sắp xếp Tất cả trên menu Dạng xem chỉ tổ chức các sổ làm việc. Visual Basic được coi là một cửa sổ ứng dụng riêng cho Excel.) Nhưng Windows sẽ. Trong Vista, đóng tất cả trừ hai thứ bạn muốn sắp xếp và nhấp chuột phải vào thanh tác vụ; chọn “Hiển thị các cửa sổ cạnh nhau”. Trong Windows 7, hãy sử dụng chức năng “Snap”. (Tìm kiếm trực tuyến “Tính năng Snap của Windows 7” để biết hướng dẫn.)

9 – Lời khuyên tốt nhất của Matthew: “Nhiều lập trình viên coi việc đi bộ dài trên bãi biển hoặc uống một bình Mountain Dew là một cách hữu ích để giúp đầu óc tỉnh táo.”

Và tất nhiên là mẹ của tất cả các mẹo VBA:

10 – Điều đầu tiên cần thử khi bạn không thể nghĩ ra các khai báo hoặc từ khóa bạn cần trong mã chương trình của mình là bật trình ghi macro và thực hiện một loạt các thao tác có vẻ giống nhau. Sau đó kiểm tra mã được tạo. Không phải lúc nào nó cũng chỉ cho bạn điều đúng đắn, nhưng thường thì đúng như vậy. Ít nhất, nó sẽ cung cấp cho bạn một nơi để bắt đầu tìm kiếm.

Đài phun nước

McDonald, Matthew. “Excel 2010: Hướng dẫn bị mất”. 1 số, O’Reilly Media, ngày 4 tháng 7 năm 2010.