Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция ППП 2012.doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
2.6 Mб
Скачать

Тема 2.7 объектная модель компонентов ms office. Библиотеки типов

На внутреннем уровне пакет MS Office представлен в виде совокупности взаимодействующих объектов. Каждый из них наделен специфичным набором свойств и методов. Совокупность объектов и связей между ними называется объектной моделью. Любое приложение MS Office имеет свою объектную модель. В виде объектов представлены все доступные разработчику элементы офисных программ вплоть до приложения как такового (объект Application). Знание структуры объектных моделей Office позволяет создавать профессиональные приложения, выполняющие необходимую обработку данных и подготовку документов. Компоненты объектной модели каждого приложения Microsoft Office – объекты и семейства – размещаются в одноименных библиотеках (файлы с расширением .old). Существуют стандартная библиотека объектов VBA и стандартная библиотека Office, библиотеки объектов Word, Excel, Access и прочие объектные библиотеки, предоставляющие различные функциональные возможности.

Чтобы просмотреть список объектных библиотек, доступных в конкретном приложении Microsoft Office (например, в Word), необходимо в редакторе VBA выбрать команду меню "Вид/Просмотр Объектов" и раскрыть список "Project/Library". На рис. 6 показан раскрытый список объектных библиотек, доступных в Microsoft Word.

Рисунок 6. Список объектных библиотек, доступных в Microsoft Word

Коротко охарактеризуем эти библиотеки.

Word – библиотека, задающая основу документов Word. Здесь хранится класс, задающий корневой объект Word.Application, классы объектов, вложенных в корневой объект.

Office – библиотека объектов, общих для всех приложений Microsoft Office. Здесь находятся CommandBar – классы, определяющие инструментальные панели, и классы других общих объектов. Здесь же находятся классы, задающие "помощник" (объект Assistant) и все классы, связанные с ним. Stdole – библиотека классов, позволяющая работать с ActiveX-объектами (OLE-объектами) и функциями OLE-автоматизации (OLE-Automation).

VBA – библиотека классов, связанных с языком VBA. Здесь хранятся все стандартные функции и константы, встроенные в язык, классы Collection, Err и прочие.

Project – проект по умолчанию, связанный с документом. Классы, которые могут программистом создаваться в этом проекте, методы, свойства – все это доступно для просмотра так же, как и объекты классов, встроенных в стандартные библиотеки.

Normal – проект, доступный для всех документов Word. Здесь могут храниться функции и классы, используемые всеми документами Word.

Библиотека vba. Объекты общего назначения Коллекции vba

Коллекции VBA - это упорядоченные наборы элементов, представляющие собой единое целое. Любая коллекция VBA - экземпляр класса Collection. Все элементы коллекции (члены) представлены ссылками на фактические объекты. Это позволяет объединять в коллекцию данные различных типов. Коллекция - это списочная структура, поддерживающая операции создания коллекции как таковой, добавления и удаления элементов, получения элемента по его индексу.

В коллекцию можно добавлять элементы методом Add, удалять ранее добавленные элементы методом Remove и обращаться к элементам методом Item, в т.ч. и итеративно, например с использованием инструкции For Each...Next. В качестве примера приведем коллекцию UserForms, элементами которой являются все загруженные формы UserForm приложения. Как и все коллекции, UserForms имеет свойства Count и Item, а также метод Add. Свойство Count возвращает количество загруженных форм. Свойство Item возвращает определенный компонент коллекции, т.е. форму. Метод Add добавляет в коллекцию новую форму. Еще один пример - набор всех элементов управления, размещенных на пользовательской форме UserForm, представляемый коллекцией Controls. Фрагмент кода, приведенный в листинге 27, устанавливает значение свойства Visible каждого элемента коллекции Controls в False (делает элемент невидимым на форме):

Листинг 27. Использование коллекций

' Подразумевается, что форма UserForm1 добавлена в проект и загружена

' в процессе выполнения приложения ...

For Each с in UserForm1.Controls

с.Visible = False Next ...