Leer información de VBA del archivo MPP
Aspose.Tasks for C ++ API proporciona soporte para leer información VBA del archivo MPP. Esto incluye trabajar con:
- Información de VBA.
- Información de módulos contenida en el proyecto.
- Referencias Información almacenada en el proyecto.
La clase VBAproject es la clase principal para leer la información VBA del archivo del proyecto. Esto tiene una colección de módulos y referencias para leer más detalles del archivo del proyecto VBA. Este artículo demuestra el uso de todo esto con la ayuda de muestras de código.
Lectura de información del proyecto VBA
El siguiente ejemplo de código demuestra cómo leer la información del proyecto VBA con la ayuda de VBAPREJEJT y la clase de proyecto.
1// Loading project file
2System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"VbaProject1.mpp");
3
4System::SharedPtr<VbaProject> vbaProject = project->get_VbaProject();
5
6System::Console::WriteLine(System::String(u"VbaProject.Name ") + vbaProject->get_Name());
7System::Console::WriteLine(System::String(u"VbaProject.Description ") + vbaProject->get_Description());
8System::Console::WriteLine(System::String(u"VbaProject.CompilationArguments") + vbaProject->get_CompilationArguments());
9System::Console::WriteLine(System::String(u"VbaProject.HelpContextId") + vbaProject->get_HelpContextId());
Reading References Information from VBA
The following code example demonstrates how to read VBA References Information from VBA with the help of VbaProject, Project and VbaReference class
1System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"VbaProject1.mpp");
2
3System::SharedPtr<VbaProject> vbaProject = project->get_VbaProject();
4System::SharedPtr<VbaReferenceCollection> references = vbaProject->get_References();
5System::Console::WriteLine(u"Reference count ", System::ObjectExt::Box<int32_t>(references->get_Count()));
6
7System::SharedPtr<VbaReference> reference = vbaProject->get_References()->ToList()->idx_get(0);
8System::Console::WriteLine(System::String(u"Identifier: ") + reference->get_LibIdentifier());
9System::Console::WriteLine(System::String(u"Name: ") + reference->get_Name());
10
11reference = vbaProject->get_References()->ToList()->idx_get(1);
12System::Console::WriteLine(System::String(u"Identifier: ") + reference->get_LibIdentifier());
13System::Console::WriteLine(System::String(u"Name: ") + reference->get_Name());
14
15reference = vbaProject->get_References()->ToList()->idx_get(2);
16System::Console::WriteLine(System::String(u"Identifier: ") + reference->get_LibIdentifier());
17System::Console::WriteLine(System::String(u"Name: ") + reference->get_Name());
Reading Modules Information from VBA
The following code example demonstrates how to read modules information from VBA with the help of VbaProject, Project and IVbaModule class
1System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"VbaProject1.mpp");
2
3System::SharedPtr<VbaProject> vbaProject = project->get_VbaProject();
4System::Console::WriteLine(System::String(u"Total Modules Count: ") + vbaProject->get_Modules()->get_Count());
5
6System::SharedPtr<IVbaModule> vbaModule = vbaProject->get_Modules()->ToList()->idx_get(0);
7System::Console::WriteLine(System::String(u"Module Name: ") + vbaModule->get_Name());
8System::Console::WriteLine(System::String(u"Source Code: ") + vbaModule->get_SourceCode());
Reading Module Attributes Information from VBA
The following code example demonstrates how to read modules attributes from VBA with the help of VbaProject, Project and IVbaModule class
1System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"VbaProject1.mpp");
2System::SharedPtr<VbaProject> vbaProject = project->get_VbaProject();
3System::SharedPtr<IVbaModule> vbaModule = vbaProject->get_Modules()->ToList()->idx_get(0);
4
5System::Console::WriteLine(System::String(u"Attributes Count: ") + vbaModule->get_Attributes()->get_Count());
6System::Console::WriteLine(System::String(u"VB_Name: ") + vbaModule->get_Attributes()->ToList()->idx_get(0)->get_Key());
7System::Console::WriteLine(System::String(u"Module1: ") + vbaModule->get_Attributes()->ToList()->idx_get(0)->get_Value());