Редактирование исходного кода 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.