Метод 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
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.