Метод Application.Run (Word)

Запускает макрос Visual Basic.

Синтаксис

expression. Выполнить (MacroName, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11, varg12, varg13, varg14, varg15, varg16, varg17, varg18, varg19, varg20, varg21, varg22, varg23, varg24, varg25, varg26, varg27, varg28, varg29, varg30)

выражение (обязательно). Переменная, представляющая объект Application .

Параметры

Имя Обязательный или необязательный Тип данных Описание
MacroName Обязательный String Имя макроса.
varg1... varg30 Необязательный Variant Значения параметров макроса. В указанный макрос можно передать до 30 значений параметров.

Замечания

Параметр MacroName может быть любым сочетанием шаблона, модуля и имени макроса. Например, все приведенные ниже инструкции являются допустимыми.

Application.Run "Normal.Module1.MAIN" 
Application.Run "MyProject.MyModule.MyProcedure" 
Application.Run "'My Document.doc'!ThisModule.ThisProcedure"

Если указать имя документа, код может выполнять только макросы в документах, связанных с текущим контекстом, а не только в любом из документов.

Хотя код Visual Basic может вызывать макрос напрямую (без использования метода Run ), этот метод полезен, если имя макроса хранится в переменной. (Дополнительные сведения см. в примере для этого раздела. Следующие три оператора функционально эквивалентны. Для первых двух инструкций требуется ссылка на Normal.dot, проект, в котором находится вызываемый макрос; третья инструкция, использующая метод Run , не требует ссылки на проект Normal.dot.

Normal.Module2.Macro1 
Call Normal.Module2.Macro1 
Application.Run MacroName:="Normal.Module2.Macro1"

Пример

В этом примере пользователю предлагается ввести имя шаблона, имя модуля, имя макроса и значение параметра, а затем запускается этот макрос.

Dim strTemplate As String 
Dim strModule As String 
Dim strMacro As String 
Dim strParameter As String 
 
strTemplate = InputBox("Enter the template name") 
strModule = InputBox("Enter the module name") 
strMacro = InputBox("Enter the macro name") 
strParameter = InputBox("Enter a parameter value") 
Application.Run MacroName:=strTemplate & "." _ 
 & strModule & "." & strMacro, _ 
 varg1:=strParameter

См. также

Объект Application

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.