Aspose::Words::Vba::VbaModule class
Contents
[
Hide
]VbaModule class
Provides access to VBA project module. To learn more, visit the Working with VBA Macros documentation article.
class VbaModule : public System::Object
Methods
Method | Description |
---|---|
Clone() | Performs a copy of the VbaModule. |
get_Name() const | Gets or sets VBA project module name. |
get_SourceCode() const | Gets or sets VBA project module source code. |
get_Type() const | Specifies whether the module is a procedural module, document module, class module, or designer module. |
GetType() const override | |
Is(const System::TypeInfo&) const override | |
set_Name(const System::String&) | Setter for Aspose::Words::Vba::VbaModule::get_Name. |
set_SourceCode(const System::String&) | Setter for Aspose::Words::Vba::VbaModule::get_SourceCode. |
set_Type(Aspose::Words::Vba::VbaModuleType) | Setter for Aspose::Words::Vba::VbaModule::get_Type. |
static Type() | |
VbaModule() | Creates an empty module. |
Examples
Shows how to access a document’s VBA project information.
auto doc = System::MakeObject<Aspose::Words::Document>(get_MyDir() + u"VBA project.docm");
// A VBA project contains a collection of VBA modules.
System::SharedPtr<Aspose::Words::Vba::VbaProject> vbaProject = doc->get_VbaProject();
std::cout << (vbaProject->get_IsSigned() ? System::String::Format(u"Project name: {0} signed; Project code page: {1}; Modules count: {2}\n", vbaProject->get_Name(), vbaProject->get_CodePage(), vbaProject->get_Modules()->LINQ_Count()) : System::String::Format(u"Project name: {0} not signed; Project code page: {1}; Modules count: {2}\n", vbaProject->get_Name(), vbaProject->get_CodePage(), vbaProject->get_Modules()->LINQ_Count())) << std::endl;
System::SharedPtr<Aspose::Words::Vba::VbaModuleCollection> vbaModules = doc->get_VbaProject()->get_Modules();
ASSERT_EQ(vbaModules->LINQ_Count(), 3);
for (auto&& module_ : vbaModules)
{
std::cout << System::String::Format(u"Module name: {0};\nModule code:\n{1}\n", module_->get_Name(), module_->get_SourceCode()) << std::endl;
}
// Set new source code for VBA module. You can access VBA modules in the collection either by index or by name.
vbaModules->idx_get(0)->set_SourceCode(u"Your VBA code...");
vbaModules->idx_get(u"Module1")->set_SourceCode(u"Your VBA code...");
// Remove a module from the collection.
vbaModules->Remove(vbaModules->idx_get(2));
See Also
- Namespace Aspose::Words::Vba
- Library Aspose.Words for C++