Использование вызова для запуска макросов VBA (Microsoft Word)
Хотя можно запустить макрос VBA из другого макроса, используя подход, представленный в предыдущем совете, бывают случаи, когда такой подход просто не работает. Вместо этого вам нужно искать решение, позволяющее безотказно запускать макрос. Один из подходов — использовать команду Call в VBA. Однако, прежде чем вы сможете использовать команду, вам необходимо добавить ссылку на проект в вызывающий проект. (Проекты — это то, как VBA относится к коллекции модулей, форм и т. Д. VBA в шаблоне. Например, VBA ссылается на шаблон Normal.dot как на «нормальный» проект.) Ссылки между проектами обеспечивают однозначную определенную связь между вызывающий проект и вызываемый проект.
Например, предположим, что макрос MyMacro (тот, который вы хотели запустить) был частью шаблона CoolDoc. Чтобы правильно использовать Call в VBA, вам необходимо добавить ссылку на проект CoolDoc.dot в макрос, который будет вызывать MyMacro. К сожалению, это немного легче сказать, чем сделать, из-за потенциальной «проблемы» в VBA: кроме «Нормального»
project, VBA дает всем созданным пользователем шаблонным проектам имя проекта по умолчанию «TemplateProject». Это может создать проблемы, поскольку уникальное имя проекта лучше всего, когда вы хотите указать конкретный макрос для запуска. Чтобы присвоить CoolDoc.dot уникальное имя проекта, выполните следующие действия:
-
Убедитесь, что шаблон CoolDoc.dot открыт.
-
Откройте редактор VBA, нажав Alt + F11.
-
В окне «Проект» в верхнем левом углу редактора VBA щелкните правой кнопкой мыши папку с шаблоном. Папка будет называться Project (CoolDoc). Word отображает контекстное меню.
-
Выберите параметр «Свойства проекта» в контекстном меню. Откроется диалоговое окно «Свойства».
-
В поле Project Name введите подходящее имя для вашего проекта.
(CoolDoc было бы хорошим названием, если оно уникально.)
-
Щелкните ОК. Диалоговое окно исчезнет, и проект будет переименован в CoolDoc.
Если вы развернете все объекты в CoolDoc, вы должны увидеть один или два модуля в проекте. (Помните, макросы VBA содержатся в модулях.) Для этого обсуждения предположим, что MyMacro (тот, который вы хотите запустить) содержится в модуле HotStuff проекта CoolDoc.
(Все эти имена объектов будут использоваться в ближайшее время. На этом этапе вам просто нужно отметить имена, используемые для вашего проекта и модуля с макросом.)
Теперь вы готовы добавить ссылку на проект CoolDoc к проекту, из которого будет вызываться макрос. В этом случае предположим, что вы будете вызывать его из макроса в проекте Normal. Вы можете добавить ссылку, выполнив следующие действия (при условии, что редактор VBA все еще открыт):
-
В окне проекта в верхнем левом углу редактора VBA выберите папку Normal.
-
Выберите «Ссылки» в меню «Инструменты». Откроется диалоговое окно «Ссылки». (См. Рис. 1.)
-
В списке доступных ссылок найдите CoolDoc.
-
Убедитесь, что установлен флажок слева от опции CoolDoc.
-
Щелкните ОК.
Наконец, вы готовы добавить оператор Call к макросу, из которого вы хотите вызвать MyMacro. Командная строка будет выглядеть следующим образом:
Call CoolDoc.HotStuff.MyMacro
Эта командная строка заставляет VBA запускать нужный макрос без какой-либо двусмысленности. Однако следует отметить кое-что важное.
Размещение ссылки на проект CoolDoc в Normal заставляет Normal загружать копию CoolDoc при каждом запуске Word, даже если нет открытых документов, основанных на шаблоне CoolDoc.dot.
Эта загрузка CoolDoc поднимает очевидный вопрос: какой смысл в VBA помещать MyMacro в CoolDoc.dot, поскольку это не сэкономит время загрузки или использование ресурсов? Короткий ответ заключается в том, что в этом нет никакого смысла, кроме CoolDoc.dot, возможно, более очевидного места для размещения кода, который относится только к вещам в CoolDoc.dot. (Вся эта тема разумного проектирования — слишком большая тема для обсуждения в этом единственном совете.)
_Примечание: _
Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
WordTips — ваш источник экономичного обучения работе с Microsoft Word.
(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (86) применим к Microsoft Word 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Word (Word 2007 и позже) здесь:
link: / wordribbon-Using_Call_to_Run_VBA_Macros [Использование вызова для запуска макросов VBA]
.