Aspose::Words::Vba::VbaModuleCollection class

VbaModuleCollection class

Представляет коллекцию объектов VbaModule. Чтобы узнать больше, посетите статью документации Working with VBA Macros.

class VbaModuleCollection : public System::Collections::Generic::IEnumerable<System::SharedPtr<Aspose::Words::Vba::VbaModule>>

Методы

МетодОписание
Add(const System::SharedPtr<Aspose::Words::Vba::VbaModule>&)Добавляет модуль в коллекцию.
begin()
begin() const
cbegin() const
cend() const
end()
end() const
get_Count()Возвращает количество модулей VBA в коллекции.
GetType() const override
idx_get(int32_t)Получает объект VbaModule по индексу.
idx_get(const System::String&)Получает объект VbaModule по имени или Null, если не найден.
Is(const System::TypeInfo&) const override
Remove(const System::SharedPtr<Aspose::Words::Vba::VbaModule>&)Удаляет указанный модуль из коллекции.
static Type()
virtualizeBeginConstIterator() const override
virtualizeBeginIterator() override
virtualizeEndConstIterator() const override
virtualizeEndIterator() override

Typedefs

Типовое определениеОписание
const_iterator
iterator
iterator_holder_type
virtualized_iterator
virtualized_iterator_element

Примеры

Показывает, как получить доступ к информации о VBA‑проекте документа.

auto doc = System::MakeObject<Aspose::Words::Document>(get_MyDir() + u"VBA project.docm");

// Проект VBA содержит коллекцию модулей VBA.
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;
}

// Установите новый исходный код для модуля VBA. Вы можете получить доступ к модулям VBA в коллекции либо по индексу, либо по имени.
vbaModules->idx_get(0)->set_SourceCode(u"Your VBA code...");
vbaModules->idx_get(u"Module1")->set_SourceCode(u"Your VBA code...");

// Удалите модуль из коллекции.
vbaModules->Remove(vbaModules->idx_get(2));

См. также