Edición del código fuente VBA
Descripción general
Los archivos de Microsoft Project (MPP/XML) pueden contener módulos VBA que almacenan macros para automatizar tareas relacionadas con el proyecto. A partir de la versión 25.6, Aspose.Tasks for .NET permite no solo leer sino también editar el código fuente de los módulos VBA existentes en un proyecto.
Esto hace posible mantener y actualizar la lógica de automatización sin depender de Microsoft Project.
Edición del código fuente de un módulo existente
El siguiente ejemplo demuestra cómo editar el código fuente de un módulo llamado Module1
en un proyecto existente.
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 });
Este ejemplo verifica si el proyecto contiene módulos VBA, encuentra un módulo por su nombre y reemplaza su código fuente. Para aplicar los cambios, el WriteVba
flag debe estar habilitado al guardar el proyecto.
Preguntas frecuentes
P: ¿Puedo actualizar varios módulos a la vez?
- Sí. Puede iterar a través de la
VbaProject.Modules
collection y actualizar laSourceCode
property.
P: ¿Qué sucede si intento actualizar un módulo inexistente?
- Se lanzará una excepción. Debe comprobar si el módulo existe antes de editar.
P: ¿Puedo editar código fuente VBA en un proyecto sin módulos VBA?
- No. El archivo de Microsoft Project de destino ya debe contener un proyecto VBA con al menos un módulo.
P: ¿Puedo renombrar módulos VBA?
- Actualmente, solo se admite actualizar el código fuente de módulos existentes y agregar nuevos módulos.
Conclusión
Editar el código fuente VBA con Aspose.Tasks for .NET ofrece control completo sobre las macros del proyecto, permitiendo a los desarrolladores automatizar, ajustar y mantener la lógica personalizada dentro de los archivos de Microsoft Project sin depender de Microsoft Project.