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));
См. также
- Namespace Aspose::Words::Vba
- Library Aspose.Words for C++