Использование вызова для запуска макросов VBA (Microsoft Word)
Хотя можно запустить макрос VBA из другого макроса, используя подход, представленный в предыдущем совете, бывают случаи, когда такой подход просто не работает. Вместо этого вам нужно искать решение, позволяющее безотказно запускать макрос. Один из подходов — использовать команду Call в VBA. Однако, прежде чем вы сможете использовать команду, вам необходимо добавить ссылку на проект в вызывающий проект. (Проекты — это то, как VBA относится к набору модулей, форм и т. Д. VBA в шаблоне. Например, VBA ссылается на шаблон Normal как на «нормальный» проект
). Ссылки между проектами обеспечивают однозначное определение связь между вызывающим проектом и вызываемым проектом.
Например, предположим, что макрос MyMacro (тот, который вы хотели запустить) был частью шаблона CoolDoc. Чтобы правильно использовать Call в VBA, вам необходимо добавить ссылку на проект CoolDoc.dotm в макрос, который будет вызывать MyMacro. К сожалению, это немного легче сказать, чем сделать, из-за потенциальной «проблемы» в VBA: кроме «Нормального»
project, VBA дает всем созданным пользователем шаблонным проектам имя проекта по умолчанию «TemplateProject». Это может создать проблемы, поскольку уникальное имя проекта лучше всего подходит для конкретизации выполняемого макроса. Чтобы присвоить CoolDoc.dotm уникальное имя проекта, выполните следующие действия:
-
Убедитесь, что шаблон CoolDoc.dotm открыт.
-
Откройте редактор VBA, нажав Alt + F11.
-
В окне «Проект» в верхнем левом углу редактора VBA щелкните правой кнопкой мыши папку с шаблоном. Поскольку CoolDoc является шаблоном, папка называется TemplateProject (CoolDoc). Word отображает контекстное меню.
-
Выберите параметр TemplateProject Properties в контекстном меню.
Откроется диалоговое окно «Свойства».
-
В поле 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.dotm.
Эта загрузка CoolDoc поднимает очевидный вопрос: какой смысл в VBA помещать MyMacro в CoolDoc.dotm, поскольку это не сэкономит время загрузки или использование ресурсов? Короткий ответ заключается в том, что в этом нет никакого смысла, кроме CoolDoc.dotm, возможно, более очевидного места для размещения кода, который относится только к объектам CoolDoc.dotm. (Вся эта тема разумного проектирования — слишком большая тема для обсуждения в этом единственном совете.)
_Примечание: _
Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
WordTips — ваш источник экономичного обучения работе с Microsoft Word.
(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (11412) применим к Microsoft Word 2007, 2010, 2013, 2016, 2019 и Word в Office 365. Вы можете найти версию этого совета для старый интерфейс меню Word здесь:
link: / word-Using_Call_to_Run_VBA_Macros [Использование вызова для запуска макросов VBA]
.