VBA(Visual Basic for Applications) — це мова програмування, яка використовується у файлах 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 for .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 за допомогою C#
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 за допомогою C#
Ви також можете змінити наявні макроси 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 for .NET, використовуючи тимчасову ліцензію, дійсну протягом 30 днів. Отримайте свій зараз.
Висновок
Макроси VBA у файлах MS Excel використовуються для автоматизації різних типів завдань, пов’язаних з електронними таблицями. Для програмної обробки макросів VBA у цій статті описано, як видобувати, додавати та змінювати код у модулях VBA за допомогою C#. Ви можете дізнатися більше про API обробки електронних таблиць C# за допомогою документації.
Дивись також
Порада. Ви можете перевірити Aspose БЕЗКОШТОВНА веб-програма для видалення макросів.