- •Шеверева е.А. Лекция № 2 по дисциплине 5422 «Средства разработки офисных приложений»
- •План лекции:
- •Текст лекции
- •1 Обзор моделей объектов
- •1.1 Иерархия или модель объектов
- •1.2. Свойства и методы
- •1.3. Связь модели объектов с пользовательским интерфейсом
- •1.4. Объекты-наборы
- •2.1. Получение ссылки на объект
- •2.2. Вызов свойств и методов объекта
- •2.3. Инструментальные средства Visual Basic
- •3 Программирование объектов другого приложения
2.1. Получение ссылки на объект
Прежде чем делать что-то с объектом, необходимо получить ссылку на него. Для этого необходимо составить выражение, которое обеспечивает доступ к этому объекту; при этом ссылку на очередной объект в иерархии можно получить через соответствующие свойства или методы – аксессоры объектов (object accessors), или просто аксесоры. При построении выражения для доступа к объекту с помощью аксессоров следует иметь в виду:
чаще всего точкой входа в модель объектов служит объект верхнего уровня, каковым обычно является объект Application. Чтобы получить ссылку на него, используется свойство Application;
чтобы после этого перейти к необходимому объекту, нужно последовательно пройти все «вышестоящие» объекты, получая ссылку на очередной объект с помощью аксессоров;
существует другой вид аксессоров – сокращенный; они обеспечивают прямой доступ к объектам модели, не требуя «спуска» от объекта Application. К таким объектам относятся свойства Documents, Workbooks и Presentations, которые позволяют напрямую получить ссылку на набор документов данного приложения. Есть и другие сокращенные аксессоры, например, свойства ActiveWindow, ActiveDocument, ActiveWorsheet или ActiveCell, которые возвращают ссылку на какой-либо активный элемент приложения. В качестве сокращенных можно использовать любые аксессоры, содержащиеся в списке Members Of (Компонент) окна Object Browser (Просмотр объектов), когда в списке Classes (Классы) выбрана строка <global> (<глобальные>). Иначе говоря, перед их применением не нужно получать ссылку на объект, к которому они относятся, - Visual Basic определяет это сам по текущему контексту выполнения кода;
многие объекты – рабочие книги, рабочие листы, документы, презентации, слайды – являются элементами наборов. Поскольку набор всегда стоит в иерархии на один уровень выше находящихся в нем объектов, то обычно, чтобы получить доступ к элементу набора, следует сначала получить ссылку на набор. Имя аксессора, возвращающего ссылку на объект-набор, часто совпадает с именем набора;
чтобы получить ссылку на отдельный элемент набора, обычно используют свойство или метод Item, которому передают имя или порядковый номер данного элемента. Свойство или метод Item в большинстве наборов применяется по умолчанию;
переход к объекту, стоящему в иерархии на ступеньку выше, зачастую возможен через свойство Parent текущего объекта. Но оно не всегда возвращает ссылку на прямого предка объекта – иногда можно получить ссылку на его «прапредка» (особенно, если этот объект входит в какой-нибудь набор). Иными словами, свойство Parent объекта из набора может возвращать ссылку на предка набора, а не на сам набор. Например, свойство Parent объекта Document в Word возвращает ссылку на объект Application, а не на набор Documents. Чтобы определить тип объекта, ссылку на который возвращает свойство Parent, необходимо вызвать функцию TypeName. Функция TypeName позволяет определять тип объекта, полученного в любом выражении, а не только в тех, где используется свойство Parent;
для перехода от какого-либо объекта к объекту Application, стоящему на вершине иерархии, часто используется свойство Application. Оно особенно полезно, если необходимо добраться до объектов приложения, в котором был создан внедренный объект.