Редагування вихідного коду VBA
Огляд
Файли Microsoft Project (MPP/XML) можуть містити модулі VBA, що зберігають макроси для автоматизації завдань, пов’язаних із проєктом. Починаючи з версії 25.6, Aspose.Tasks for .NET дозволяє не лише читання, а й редагування вихідного коду існуючих модулів VBA у проєкті.
Це дозволяє підтримувати й оновлювати логіку автоматизації, не покладаючись на Microsoft Project.
Редагування вихідного коду існуючого модуля
У наведеному прикладі показано, як редагувати вихідний код модуля з іменем Module1
у наявному проєкті.
1 Project project = new Project("FileWithVbaProject.mpp");
2
3 if (project.VbaProject.Modules.Count == 0)
4 {
5 throw new InvalidOperationException("Project should contain VBA modules");
6 }
7
8 var existingModule = project.VbaProject.Modules["Module1"];
9 existingModule.SourceCode = @"Sub Method()
10 MsgBox ""This is an updated text.""
11 End Sub";
12
13 // WriteVba flag should be specified in order to apply changes to MPP file.
14 project.Save("output.mpp", new MPPSaveOptions { WriteVba = true });
Цей приклад перевіряє, чи містить проєкт модулі VBA, знаходить модуль за його назвою і замінює його вихідний код. Щоб застосувати зміни, WriteVba
прапорець має бути увімкнений під час збереження проєкту.
Поширені запитання
П: Чи можу я одночасно оновити кілька модулів?
- Так. Ви можете перебрати
VbaProject.Modules
колекцію і оновитиSourceCode
властивість кожного модуля.
П: Що станеться, якщо я спробую оновити неіснуючий модуль?
- Буде згенеровано виняток. Потрібно перевірити, чи існує модуль, перед його редагуванням.
П: Чи можу я редагувати вихідний код VBA в проєкті без модулів VBA?
- Ні. Цільовий файл Microsoft Project повинен уже містити проєкт VBA щонайменше з одним модулем.
П: Чи можу я перейменувати модулі VBA?
- Наразі підтримується лише оновлення вихідного коду існуючих модулів та додавання нових модулів.
Висновок
Редагування вихідного коду VBA за допомогою Aspose.Tasks for .NET надає повний контроль над макросами проєкту, дозволяючи розробникам автоматизувати, налаштовувати та підтримувати власну логіку всередині файлів Microsoft Project без покладення на сам Microsoft Project.