Aspose::Words::Vba::VbaModuleCollection class
Contents
[
Hide
]VbaModuleCollection class
Represents a collection of VbaModule objects. To learn more, visit the Working with VBA Macros documentation article.
class VbaModuleCollection : public System::Collections::Generic::IEnumerable<System::SharedPtr<Aspose::Words::Vba::VbaModule>>
Methods
Method | Description |
---|---|
Add(const System::SharedPtr<Aspose::Words::Vba::VbaModule>&) | Adds a module to the collection. |
begin() | |
begin() const | |
cbegin() const | |
cend() const | |
end() | |
end() const | |
get_Count() | Returns the number of VBA modules in the collection. |
GetType() const override | |
idx_get(int32_t) | Retrieves a VbaModule object by index. |
idx_get(const System::String&) | Retrieves a VbaModule object by name, or Null if not found. |
Is(const System::TypeInfo&) const override | |
Remove(const System::SharedPtr<Aspose::Words::Vba::VbaModule>&) | Removes the specified module from the collection. |
static Type() | |
virtualizeBeginConstIterator() const override | |
virtualizeBeginIterator() override | |
virtualizeEndConstIterator() const override | |
virtualizeEndIterator() override |
Typedefs
Typedef | Description |
---|---|
const_iterator | |
iterator | |
iterator_holder_type | |
virtualized_iterator | |
virtualized_iterator_element |
Examples
Shows how to access a document’s VBA project information.
auto doc = MakeObject<Document>(MyDir + u"VBA project.docm");
// A VBA project contains a collection of VBA modules.
SharedPtr<VbaProject> vbaProject = doc->get_VbaProject();
std::cout << (vbaProject->get_IsSigned() ? 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())
: 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;
SharedPtr<VbaModuleCollection> vbaModules = doc->get_VbaProject()->get_Modules();
ASSERT_EQ(vbaModules->LINQ_Count(), 3);
for (const auto& module_ : vbaModules)
{
std::cout << "Module name: " << module_->get_Name() << ";\nModule code:\n" << module_->get_SourceCode() << "\n" << 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++