Sử dụng lệnh gọi để chạy Macro VBA (Microsoft Word)
Mặc dù có thể chạy macro VBA từ một macro khác bằng cách sử dụng cách tiếp cận được trình bày trong mẹo trước, nhưng đôi khi cách tiếp cận như vậy sẽ không thực hiện được công việc. Thay vào đó, bạn cần phải tìm giải pháp cho phép chạy macro một cách an toàn. Một cách tiếp cận là sử dụng lệnh Gọi trong VBA. Tuy nhiên, trước khi có thể sử dụng lệnh, bạn cần thêm một tham chiếu dự án vào dự án đang gọi. (Các dự án là cách VBA đề cập đến tập hợp các mô-đun VBA, biểu mẫu, v.v. trong một mẫu. Ví dụ: VBA đề cập đến mẫu Bình thường là dự án “Bình thường”
Ví dụ, giả sử rằng macro MyMacro (macro mà bạn muốn chạy) là một phần của mẫu CoolDoc. Để sử dụng Call đúng cách trong VBA, bạn cần thêm tham chiếu đến dự án CoolDoc.dotm vào macro sẽ gọi MyMacro. Thật không may, điều này nói dễ hơn làm vì một “gottcha” tiềm năng trong VBA: Khác với “Normal”
dự án, VBA cung cấp cho tất cả các dự án mẫu do người dùng tạo tên dự án mặc định là “TemplateProject.” Điều này có thể gây ra vấn đề vì việc có một tên dự án duy nhất là tốt nhất khi bạn muốn cụ thể về macro để chạy. Để đặt cho CoolDoc.dotm một tên dự án duy nhất, hãy làm theo các bước sau:
-
Đảm bảo rằng mẫu CoolDoc.dotm đang mở.
-
Hiển thị trình soạn thảo VBA bằng cách nhấn Alt + F11.
-
Trong cửa sổ Dự án ở phía trên bên trái của trình chỉnh sửa VBA, nhấp chuột phải vào thư mục chứa mẫu. Vì CoolDoc là một mẫu nên thư mục được đặt tên là TemplateProject (CoolDoc). Word hiển thị menu Ngữ cảnh.
-
Chọn tùy chọn Thuộc tính TemplateProject từ menu Ngữ cảnh.
Hộp thoại Thuộc tính được hiển thị.
-
Trong trường Tên dự án, hãy nhập tên phù hợp cho dự án của bạn.
(CoolDoc sẽ là một cái tên hay, miễn là nó là duy nhất.)
-
Nhấp vào OK. Hộp thoại biến mất và dự án được đổi tên thành CoolDoc.
Nếu bạn mở rộng tất cả các đối tượng trong CoolDoc, bạn sẽ thấy một hoặc hai mô-đun trong dự án. (Hãy nhớ rằng các macro VBA được chứa trong các mô-đun.) Vì lợi ích của cuộc thảo luận này, hãy giả sử rằng MyMacro (cái mà bạn muốn chạy) được chứa trong mô-đun HotStuff của dự án CoolDoc.
(Tất cả các tên đối tượng này sẽ được sử dụng trong thời gian ngắn. Tại thời điểm này, bạn chỉ cần lưu ý các tên được sử dụng cho dự án của bạn và mô-đun với macro.)
Bây giờ bạn đã sẵn sàng thực sự thêm tham chiếu dự án CoolDoc vào dự án mà từ đó macro sẽ được gọi. Trong trường hợp này, giả sử bạn sẽ gọi nó từ một macro trong dự án Normal. Bạn có thể thêm tài liệu tham khảo bằng cách làm theo các bước sau (giả sử rằng trình soạn thảo VBA vẫn đang mở):
-
Trong cửa sổ Dự án ở phía trên bên trái của trình soạn thảo VBA, hãy chọn thư mục Bình thường.
-
Chọn Tài liệu tham khảo từ trình đơn Công cụ. Hộp thoại Tham khảo được hiển thị. (Xem Hình 1.)
-
Trong danh sách các tài liệu tham khảo có sẵn, hãy tìm CoolDoc.
-
Đảm bảo rằng hộp kiểm ở bên trái của tùy chọn CoolDoc được chọn.
-
Nhấp vào OK.
Cuối cùng, bạn đã sẵn sàng thêm câu lệnh Call vào macro mà từ đó bạn muốn gọi MyMacro. Dòng lệnh sẽ xuất hiện như sau:
Call CoolDoc.HotStuff.MyMacro
Dòng lệnh này làm cho VBA chạy macro mong muốn mà không có bất kỳ cơ hội mơ hồ nào. Tuy nhiên, có một số điều quan trọng cần lưu ý.
Đặt một tham chiếu đến dự án CoolDoc trong Normal sẽ làm cho Normal tải một bản sao của CoolDoc mỗi khi khởi động Word — ngay cả khi không có tài liệu nào được mở dựa trên mẫu CoolDoc.dotm.
Việc tải CoolDoc này đặt ra và câu hỏi rõ ràng: Trong VBA, việc đưa MyMacro vào CoolDoc.dotm là gì vì nó sẽ không tiết kiệm thời gian tải hoặc sử dụng tài nguyên? Câu trả lời ngắn gọn là không có bất kỳ điểm nào, ngoài CoolDoc.dotm có thể là một nơi rõ ràng hơn để đặt mã chỉ liên quan đến những thứ trong CoolDoc.dotm. (Toàn bộ chủ đề về thiết kế dự án hợp lý này là chủ đề quá lớn để thảo luận trong mẹo đơn này.)
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên các trang WordTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
WordTips là nguồn của bạn để đào tạo Microsoft Word hiệu quả về chi phí.
(Microsoft Word là phần mềm xử lý văn bản phổ biến nhất trên thế giới.) Mẹo này (11412) áp dụng cho Microsoft Word 2007, 2010, 2013, 2016, 2019 và Word trong Office 365. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Word tại đây: