Запустить VBA

Invoke VBA

Элемент выполняет скрипт VBA в файле Excel. Работает только с драйвером Interop.

Драйвер и другие базовые настройки указываются в контейнере Приложение Excel. Если в файле Excel требуется сохранить изменения, используйте элемент Сохранить документ.

Свойства

Символ * в названии свойства указывает на обязательность заполнения. Описание общих свойств см. в разделе Свойства элемента.

СвойствоТипОписание

Excel:

Файл*

String

Путь к файлу скрипта

Функция*

String

Имя функции VBA

Аргументы*

List<object>

Аргументы скрипта. Максимальное количество - 20 аргументов

Видимость*

Boolean

Видимость Excel

Асинхронный

Boolean

Признак асинхронного выполнения

Тайм-аут

int

Тайм-аут исполнения макроса (мс)

Вывод:

Переменная

Object

Переменная, которая будет хранить результат выполнения скрипта

Только код

Пример использования элемента в процессе с типом Только код (Pure code):

//Свойства элемента:
//app - [LTools.Office.ExcelApp] Приложение Excel
//vbaFile - Файл VBA: [String] Путь к файлу с VBA кодом 
//vbaFunction - Функция VBA: [String] Имя вызываемой функции VBA
//vbaArguments - Аргументы VBA: [List<Object>] Список аргументов VBA
//sheet - Страница: [String] Наименование страницы
//sheetIdx - Индекс страницы: [Int32] Индекс страницы
		
LTools.Office.ExcelApp app = LTools.Office.ExcelApp.Init(wf, System.IO.Path.GetFullPath(".\\TestData.xlsx"), ";", LTools.Office.Model.InteropTypes.Interop);
String vbaFile = System.IO.Path.GetFullPath(".\\vba.bas");
String vbaFunction = "WriteToCell";
List<Object> vbaArguments = new List<Object>(){"A11","Лист1","Text from Primo"};
app.RunVBA(vbaFile,vbaFunction,vbaArguments,true);
app.Save();
app.App.Dispose();

Last updated