Читання інформації VBA з файлу MPP

Aspose.Tasks для C ++ API надає підтримку читання інформації VBA з файлу MPP. Сюди входить робота з:

Клас Vbaproject - це головний клас для читання інформації VBA з файлу проекту. Це також має колекцію модулів та посилань для читання додаткових деталей файлу проекту VBA. Ця стаття демонструє використання всіх цих за допомогою зразків коду.

Інформація про проект VBA

Наступний приклад коду демонструє, як читати інформацію про проект VBA за допомогою VBAProject та класу проекту.

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());
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.