Чтение онлайн

на главную

Жанры

VBA для чайников

Каммингс Стив

Шрифт:

Рис. 12. l Примеры объектов VBA

Подобным образом к объектам Excel относятся ячейки, в которых размещаются данные и формулы, именованные диапазоны ячеек, диаграммы, украшающие многие документы, отдельные рабочие листы и целые рабочие книги. И во всех приложениях Microsoft Office - как и во многих других VBA-приложениях- меню и панели инструментов, а также пункты этих меню и кнопки в этих панелях инструментов тоже являются объектами.

Объекты VBA существуют в иерархии, в которой объекты одних типов содержатся в объектах других типов. Подобные иерархии объектов рассматриваются ниже, в разделе

"Что такое объектная

модель", а пока что мы сконцентрируем внимание на обсуждении понятия индивидуального объекта.

Объекты на уровне понятий

Если вам трудно ассоциировать объекты с графическими элементами, ячейками рабочего листа или кнопками панели инструментов, представляйте себе объекты как материальные предметы. Вы же можете представить, как вырезаете ножницами из листа бумаги кружочек и наклеиваете его на другой лист бумаги. А в ячейку рабочего листа вы можете впечатать числа, на кнопке можете щелкнуть.

Правда, кроме таких конкретных объектов, VBA-приложения предлагают и более абстрактные.

* в Microsoft Excel объект CustomView задает пользовательское представление рабочей книги (в Excel пользовательское представление определяет внешний вил рабочей книги на экране и ее параметры печати).

* В Microsoft Word объект File Search представляет, как сказано в соответствующем разделе справки, "функциональные возможности диалогового окна Открытие документа (меню Файл)". Обратите внимание, этот объект представляет не само диалоговое окно, а его функциональные возможности.

* В Visio объект Style представляет атрибуты линий, текста и заливки для графических элементов.

* В VBA имеется несколько объектов, доступных для всех VBA-приложениЙ. Так, например, объект Collection представляет контейнер для переменных или других объектов, с которыми, независимо от типов этих объектов, предполагается работать как с единым целым.

Практическое определение объекта

Вы можете заметить, что порой представить объект VBA в материально осязаемом виде не так-то просто. Но это и к лучшему - чем дальше вы уходите от материализации объектов, тем свободнее будете себя чувствовать при работе со всем диапазоном доступных объектов.

Используемое программистами-практиками определение объекта оказывается совсем простым: объектом называется любая именованная сущность, имеющая

* свойства, т.е. установки, которые можно проверить и изменить;

* методы, т.е. действия, которые может выполнить объект, когда программа попросит об этом;

* события, т.е. ситуации, в которых объект оказывается и на которые может ответить заранее определенными для таких ситуаций действиями.

Если вам не чуждо чувство прекрасного, вы можете заметить, что для таких щедро одаренных созданий термин объект не очень-то подходит, поскольку эти объекты больше похожи на братьев наших меньших, чем на инертные лампы. У тигров и китов есть отличительные особенности глаз, конечностей и хвостов, а у объектов - свойства. Лошади и собаки умеют по команде выполнять разные трюки или убегать от опасности, а объекты имеют методы и события.

Вы все еще хотите услышать формальное определение? Вот оно: объектом в программе называется именованная единица, объединяющая в себе данные и программный код, использующий эти данные и воздействующий на них. В таком случае говорят, что объект инкапсулирует данные и связанный с ними программный код.

Классы

объектов и конкретные объекты

Есть одно формальное обстоятельство, которое следует запомнить. Существует различие между конкретными объектами и теми образцами, на основе которых данные объекты создаются. Конкретный объект представляет отдельный документ, графический элемент, ячейку рабочего листа или нечто другое. Например, документ, как объект, представляет текст этого отдельного документа.

В противоположность конкретному объекту, класс объекта можно сравнить со строительным проектом. По одному проекту можно построить множество домов, в которых будут жить люди, но в самом проекте никто не живет. Точно так же в классе планируются типы данных, которые могут использоваться объектом, и определяются методы, свойства и события объекта. На основе этого плана вы создаете экземпляр данного класса - тот объект, который будет содержать реальные данные. На основе одного класса можно создать столько объектов, сколько вы пожелаете, чтобы использовать каждый из них для различных целей и с различными данными.

Коллекции объектов

Коллекция- это VBA-объект специального назначения. Как видно из самого названия, коллекции предназначены для упрощения работы с набором объектов, когда этот набор объектов нужно использовать как одно целое. Как правило, все объекты в коллекции имеют один и тот же тип. Например, коллекция Shapes в Visio состоит из объектов Shape, а коллекция Pages - из объектов Page.

Но есть и коллекции, которые оказываются более либеральными к типу входящих в них объектов. Например, VBA предлагает родовой объект Collection, предназначенный для хранения в нем объектов любых типов в любой комбинации. Если возникнет необходимость готовить самые невероятные смеси, то коллекции VBA окажутся как раз кстати.

Позже, в разделе "Работа с коллекциями объектов", мы с вами выясним, как получить доступ к отдельным объектам в коллекциях, а в главе 13 вы узнаете, как использовать свойства и методы самих коллекций (не забывайте, что они тоже являются объектами) и как создавать свои собственные коллекции на основе родового VBA-объекта Collection.

Что такое объектная модель

Как уже упоминалось, объекты VBA существуют в иерархической зависимости один от другого. Кроме обладания своими собственными свойствами, методами и событиями, объекты высших ступеней иерархии служат в качестве контейнеров для одного или целого множества подчиненных объектов. Эти вложенные объекты в свою очередь содержат другие объекты и т.д.

Вся система таких иерархических отношений конкретного VBA-приложения называется объектной моделью этого приложения. Часто представляемая в графическом виде, объектная модель приложения описывает вложения одних объектов в другие. Пример графического представления одной из объектных моделей показан на рис. 12.2.

Рис. 12.2. Объектная модель Visio с компакт-диска Visio 2000

Как видно из рис. 12.2, на вершине объектной модели VBA-приложения находится объект Application (приложение), являющийся контейнером для всех других объектов приложения, с которыми вы можете работать. Ваш VBA-проект тоже является объектом-контейнером, в котором размещаются все созданные вами модули программного кода и формы, равно как и документ проекта. (О структуре VBA-проекта и его компонентах говорилось в главе 7.)

Поделиться:
Популярные книги

Покоритель Звездных врат

Карелин Сергей Витальевич
1. Повелитель звездных врат
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Покоритель Звездных врат

Темный Патриарх Светлого Рода 6

Лисицин Евгений
6. Темный Патриарх Светлого Рода
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 6

Восход. Солнцев. Книга IV

Скабер Артемий
4. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга IV

Адепт. Том второй. Каникулы

Бубела Олег Николаевич
7. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.05
рейтинг книги
Адепт. Том второй. Каникулы

Система Возвышения. (цикл 1-8) - Николай Раздоров

Раздоров Николай
Система Возвышения
Фантастика:
боевая фантастика
4.65
рейтинг книги
Система Возвышения. (цикл 1-8) - Николай Раздоров

Измена. Верну тебя, жена

Дали Мила
2. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Верну тебя, жена

Вечный Данж. Трилогия

Матисов Павел
Фантастика:
фэнтези
юмористическая фантастика
6.77
рейтинг книги
Вечный Данж. Трилогия

Аномальный наследник. Том 1 и Том 2

Тарс Элиан
1. Аномальный наследник
Фантастика:
боевая фантастика
альтернативная история
8.50
рейтинг книги
Аномальный наследник. Том 1 и Том 2

Последний из рода Демидовых

Ветров Борис
Фантастика:
детективная фантастика
попаданцы
аниме
5.00
рейтинг книги
Последний из рода Демидовых

Хищный инстинкт

Суббота Светлана
4. Мир Двуликих
Фантастика:
фэнтези
7.50
рейтинг книги
Хищный инстинкт

Лорд Системы 13

Токсик Саша
13. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 13

Возрождение Феникса. Том 1

Володин Григорий Григорьевич
1. Возрождение Феникса
Фантастика:
фэнтези
попаданцы
альтернативная история
6.79
рейтинг книги
Возрождение Феникса. Том 1

Хозяйка лавандовой долины

Скор Элен
2. Хозяйка своей судьбы
Любовные романы:
любовно-фантастические романы
6.25
рейтинг книги
Хозяйка лавандовой долины

В теле пацана 4

Павлов Игорь Васильевич
4. Великое плато Вита
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
В теле пацана 4