VBA (Visual Basic для приложений) — это язык программирования, который используется в файлах MS Excel для автоматизации операций, связанных с электронными таблицами. Макросы VBA используются для написания определяемых пользователем функций, которые позволяют ускорить выполнение задач, выполняемых вручную. В этой статье вы узнаете, как программно работать с макросами VBA в файлах MS Excel. К концу этой статьи вы сможете извлекать, добавлять и изменять макросы VBA в книгах Excel с помощью C#.
- Работа с макросами VBA с помощью C# API
- Извлечение макросов VBA из книги Excel
- Добавление макросов VBA в книгу Excel
- Изменить макрос VBA в книге Excel
- Получить бесплатную лицензию
Работа с макросами VBA в файлах Excel — C# API
Aspose.Cells for .NET — это библиотека классов C#, предназначенная для автоматизации работы с электронными таблицами из приложений .NET. API предоставляет широкий спектр функций, позволяющих создавать, изменять и преобразовывать книги MS Excel. Кроме того, API позволяет беспрепятственно работать с макросами VBA. Aspose.Cells для .NET доступен для скачать в виде файла DLL, а также размещен на NuGet.
PM> Install-Package Aspose.Cells
Извлечение макросов VBA из файла Excel с помощью C#
Начнем с извлечения макросов VBA из существующей книги Excel. Ниже приведены шаги для выполнения этой операции.
- Создайте объект класса Workbook для загрузки файла Excel.
- Получите доступ к каждому модулю VBA из коллекции Workbook.VbaProject.Modules в объект VbaModule.
- Получить код из каждого модуля, используя свойство VbaModule.Codes.
В следующем примере кода показано, как извлечь макрос VBA из книги Excel с помощью C#.
// Полные примеры и файлы данных см. на странице https://github.com/aspose-cells/Aspose.Cells-for-.NET.
// Создать объект книги из исходного файла Excel
Workbook workbook = new Workbook("sample.xlsm");
// Извлечь код из каждого модуля VBA
foreach (VbaModule module in workbook.VbaProject.Modules)
{
string code = module.Codes;
Console.Write(code);
}
Добавить макросы VBA в файл Excel с помощью С#
Aspose.Cells for .NET также позволяет добавлять макросы VBA в существующие или новые файлы Excel. Это можно сделать, выполнив следующие шаги.
- Создайте новый файл Excel или загрузите существующий с помощью класса Workbook.
- Добавьте новый рабочий лист или получите существующий, используя класс Worksheet.
- Добавьте новый модуль VBA с помощью метода Workbook.VbaProject.Modules.Add(Worksheet) и получите идентификатор модуля.
- Получите доступ к модулю VBA из коллекции Workbook.VbaProject.Modules[idx] в объект VbaModule.
- Добавьте имя модуля, используя свойство VbaModule.Name.
- Добавьте код в модуль, используя свойство VbaModule.Codes.
- Сохраните книгу с помощью метода Workbook.Save(String, SaveFormat.Xlsm).
В следующем примере кода показано, как добавить макрос VBA в книгу Excel с помощью C#.
// Полные примеры и файлы данных см. на странице https://github.com/aspose-cells/Aspose.Cells-for-.NET.
// Создать новую книгу
Workbook workbook = new Workbook();
// Доступ к первому рабочему листу
Worksheet worksheet = workbook.Worksheets[0];
// Добавить модуль VBA
int idx = workbook.VbaProject.Modules.Add(worksheet);
// Получите доступ к модулю VBA, установите его имя и коды
Aspose.Cells.Vba.VbaModule module = workbook.VbaProject.Modules[idx];
module.Name = "TestModule";
module.Codes = "Sub ShowMessage()" + "\r\n" +
" MsgBox \"Welcome to Aspose!\"" + "\r\n" +
"End Sub";
// Сохраните книгу
workbook.Save("output_out.xlsm", SaveFormat.Xlsm);
Изменить макрос VBA в файле Excel с помощью С#
Вы также можете изменить существующие макросы VBA в файле Excel, выполнив следующие действия.
- Используйте класс Workbook для загрузки файла Excel.
- Получите доступ к модулям VBA из коллекции Workbook.VbaProject.Modules в объект VbaModule.
- Получить код из нужного модуля, используя свойство VbaModule.Codes.
- Замените код и сохраните файл Excel, используя метод Workbook.Save(String).
В следующем примере кода показано, как изменить макрос VBA в файле Excel с помощью C#.
// Полные примеры и файлы данных см. на странице https://github.com/aspose-cells/Aspose.Cells-for-.NET.
// Создать объект книги из исходного файла Excel
Workbook workbook = new Workbook("sample.xlsm");
// Изменить код модуля VBA
foreach (VbaModule module in workbook.VbaProject.Modules)
{
string code = module.Codes;
// Заменить исходное сообщение измененным сообщением
if (code.Contains("This is test message."))
{
code = code.Replace("This is test message.", "This is Aspose.Cells message.");
module.Codes = code;
}
}
// Сохраните выходной файл Excel
workbook.Save("output_out.xlsm");
Получить бесплатную лицензию
Вы можете использовать или оценить Aspose.Cells для .NET бесплатно, используя временную лицензию, действительную в течение 30 дней. Получи свой сейчас.
Вывод
Макросы VBA в файлах MS Excel используются для автоматизации различных типов задач, связанных с электронными таблицами. В этой статье описано, как программно обрабатывать макросы VBA, как извлекать, добавлять и изменять код в модулях VBA с помощью C#. Вы можете узнать больше об API для работы с электронными таблицами C#, используя документацию.
Смотрите также
Совет: вы можете попробовать Aspose БЕСПЛАТНОЕ веб-приложение для удаления макросов.