Запустить VBA
Элемент выполняет скрипт VBA в файле Excel. Работает только с драйвером Interop.
Драйвер и другие базовые настройки указываются в контейнере Приложение Excel. Если в файле Excel требуется сохранить изменения, используйте элемент Сохранить документ.
Свойства
Символ *
в названии свойства указывает на обязательность заполнения. Описание общих свойств см. в разделе Свойства элемента.
Свойство | Тип | Описание |
---|---|---|
Excel: | ||
Файл* | String | Путь к файлу скрипта |
Функция* | String | Имя функции VBA |
Аргументы* | List<object> | Аргументы скрипта. Максимальное количество - 20 аргументов |
Видимость* | Boolean | Видимость Excel |
Асинхронный | Boolean | Признак асинхронного выполнения |
Тайм-аут | int | Тайм-аут исполнения макроса (мс) |
Вывод: | ||
Переменная | Object | Переменная, которая будет хранить результат выполнения скрипта |
Только код
Пример использования элемента в процессе с типом Только код (Pure code):
C#
//Свойства элемента:
//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();