Добавление модуля VBA
Обзор
В файлах Microsoft Project (MPP/XML) модули VBA позволяют сохранять макросы, которые автоматизируют задачи управления проектом. С помощью Aspose.Tasks for .NET, вы можете добавить новые процедурные или классовые модули в существующий VBA-проект. Эта возможность доступна начиная с версии 25.6.
Добавление нового модуля VBA
В приведённом ниже примере показано, как добавить новый процедурный модуль и назначить ему исходный код. Перед запуском этого кода убедитесь, что проект уже содержит модули VBA. В противном случае будет выброшено исключение.
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 VbaModule newModule = VbaModule.CreateProceduralModule("TestModule10");
9 newModule.SourceCode = @"Sub TestMacro()
10 MsgBox ""This is a test macro.""
11 End Sub";
12
13 project.VbaProject.Modules.Add(newModule);
14
15 // WriteVba flag should be specified in order to apply changes to MPP file.
16 project.Save("output.mpp", new MPPSaveOptions { WriteVba = true });
Этот код создаёт новый модуль VBA с именем TestModule10
с простым макросом, который показывает окно сообщения. Чтобы правильно сохранить модуль, вы должны включить WriteVba
флаг в MPPSaveOptions
.
Часто задаваемые вопросы
В: Могу ли я добавить модули VBA в проект без существующего проекта VBA?
- Нет. Целевой файл Microsoft Project должен уже содержать проект VBA как минимум с одним модулем.
В: Какие типы модулей VBA я могу добавить?
- Вы можете добавить как процедурные и классовые модули.
Заключение
Добавление модулей VBA с помощью Aspose.Tasks for .NET предоставляет разработчикам возможности автоматизации непосредственно внутри файлов Microsoft Project. Это помогает расширить функциональность проекта с помощью пользовательских макросов для повторяющихся или сложных операций.