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. (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 Normal.dot là dự án “Bình thường”.) Tham chiếu giữa các dự án cung cấp một liên kết được xác định rõ ràng giữa một dự án đang gọi và dự án được gọi.

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 một tham chiếu tới dự án CoolDoc.dot 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ể tạo 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.dot một tên dự án duy nhất, hãy làm theo các bước sau:

  1. Đảm bảo rằng mẫu CoolDoc.dot đang mở.

  2. Hiển thị trình soạn thảo VBA bằng cách nhấn Alt + F11.

  3. 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. Thư mục sẽ được đặt tên là Project (CoolDoc). Word hiển thị menu Ngữ cảnh.

  4. Chọn tùy chọn Thuộc tính Dự án từ menu Ngữ cảnh. Hộp thoại Thuộc tính được hiển thị.

  5. 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.)

  1. 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ở):

  1. 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.

  2. 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.)

  3. Trong danh sách các tài liệu tham khảo có sẵn, hãy tìm CoolDoc.

  4. Đảm bảo rằng hộp kiểm ở bên trái của tùy chọn CoolDoc được chọn.

  5. Nhấp vào OK.

Cuối cùng, bạn đã sẵn sàng để thêm câu lệnh Gọi 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.dot.

Việc tải CoolDoc này làm nảy sinh câu hỏi rõ ràng: Trong VBA, việc đưa MyMacro vào CoolDoc.dot 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.dot có thể là một nơi rõ ràng hơn để đặt mã chỉ liên quan đến những thứ trong CoolDoc.dot. (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 (86) áp dụng cho Microsoft Word 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Word (Word 2007 và sau này) tại đây: