- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
VBA для чайников - Стив Каммингс
Шрифт:
Интервал:
Закладка:
Что такое объектная модель
Как уже упоминалось, объекты VBA существуют в иерархической зависимости один от другого. Кроме обладания своими собственными свойствами, методами и событиями, объекты высших ступеней иерархии служат в качестве контейнеров для одного или целого множества подчиненных объектов. Эти вложенные объекты в свою очередь содержат другие объекты и т.д.
Вся система таких иерархических отношений конкретного VBA-приложения называется объектной моделью этого приложения. Часто представляемая в графическом виде, объектная модель приложения описывает вложения одних объектов в другие. Пример графического представления одной из объектных моделей показан на рис. 12.2.
Рис. 12.2. Объектная модель Visio с компакт-диска Visio 2000
Как видно из рис. 12.2, на вершине объектной модели VBA-приложения находится объект Application (приложение), являющийся контейнером для всех других объектов приложения, с которыми вы можете работать. Ваш VBA-проект тоже является объектом-контейнером, в котором размещаются все созданные вами модули программного кода и формы, равно как и документ проекта. (О структуре VBA-проекта и его компонентах говорилось в главе 7.)
Понимание важности объектной модели
Вам придется сообщать VBA о том, какой конкретный объект нужен вам для работы, поэтому хорошее понимание объектной модели VBA-приложения оказывается очень важным для эффективной работы в нем. С помощью диаграммы объектной модели приложения, подобной показанной на рис. 12.2, очень просто проследить всю цепочку объектов, которой принадлежит нужный вам объект. В данном случае, например, сразу видно, что объект Connect является членом коллекции Connects, принадлежащего объекту Master, который в свою очередь... .
Расширение объектной модели
В программах, созданных в VBA, совсем не обязательно ограничивать себя использованием объектов только одного VBA-приложения. Не обязательно даже ограничиваться использованием только VBA-приложений как таковых. Можно использовать вообще любые приложения и "компоненты", удовлетворяющие стандарту Component Object Model (COM) фирмы Microsoft (Component Object Model можно перевести как объектная модель компонента).
Стандарт СОМ представляет собой набор технических спецификаций, регламентирующих правила определения объектов в приложениях и других программных единицах, а также правила предоставления таких объектов для использования в других приложениях. Чтобы обозначить, что удовлетворяющим стандарт СОМ приложением можно управлять из другого приложения, используется специальный термин автоматизация. Кстати, стандарт СОМ относится не только к VBA или Visual Basic, он понятен многим другим средствам разработки приложений (например, компиляторам C++), которые таким образом могут использовать соответствующие объекты.
Стандарт СОМ открывает фантастические возможности для создания мощных VBA приложений, допускающих настройку пользователем. Теперь вы можете (я не сказал легко) создавать приложения, позволяющие одновременно обрабатывать информацию, полученную из диаграмм Visio, документов Word, рабочих листов Excel и т.п. Ваше приложение может отображать всю эту информацию в окнах, которые разработаны вами, но которые в то же
время используют специальные функциональные возможности отображения информации этих приложений-компонентов.
Разработка пользовательских приложений такого уровня, очевидно, относится к непростым задачам, поэтому в данной книге это будет обсуждаться весьма поверхностно (в главе 14). Но я должен по крайней мере упомянуть, что возможности VBA открывают путь к великим свершениям.
Формы в VBA – это тоже объекты
Формой называют любое созданное в VBA пользовательское окно. Если в вашей программе предусмотрен ее собственный пользовательский интерфейс, формами будут как главное окно программы, так и все другие диалоговые окна, отображаемые вашей программой (рис. 12.3).
Главное, здесь нужно понять, что формы VBA сами являются объектами, т.е. представляют собой сущности, содержащие как информацию (задающую, например, внешний вид формы на экране), так и набор средств для обработки этой информации. Официально формы в VBA описываются в терминах объекта User Form.
Рис. 12.3. Примеры форм VBA
Как и любые другие уважающие себя объекты в VBA, формы прекрасно вписываются в рамки парадигмы объектной модели. Каждый объект UserForm принадлежит одновременно двум коллекциям объектов - VBA-проекту, в котором хранится форма, и коллекции
UserForms, содержащей все формы, загружаемые программой. В свою очередь, объект UserForms служит контейнером для коллекции Controls, содержащей элементы управления, помещенные в форму.
Точно так же элементы управления в форме- кнопки, флажки, переключатели и всевозможные другие рычажки, которыми можно любоваться и играть, - тоже являются объектами.
Для каждого типа элементов управления в VBA предлагается объект соответствующего типа.
Техника, с помощью которой можно получить доступ к конкретной форме или помещенному в нее элементу управления и использовать свойства, методы и события этого объекта, ничем не отличается от техники, используемой с другими объектами, о которых говорится в этой главе. Подробнее о работе с формами и элементами управления (а значит, и соответствующими объектами) говорится в главах 10 и 19.
Использование объектов в программе
Теперь, когда теоретические основы пройдены, наступает время практических рекомендаций по программированию с использованием объектов VBA. Начнем, пожалуй, с использования в программном коде свойств, методов и событий объектов, а уж после этого перейдем к более тонким вопросам идентификации объектов, которые предполагается использовать.
Хотя в самом понятии объекта и есть кое-что, над чем можно поломать голову, использовать объекты достаточно просто. Поскольку объекты имеют имена, вы всегда можете знать, с каким из объектов работаете. Чтобы идентифицировать в программном коде метод или свойство объекта, с которыми предполагается иметь дело, нужно просто напечатать имя объекта, за ним точку и, наконец, имя метода или свойства.
Например, MyShape.LineStyle идентифицирует свойство LineStyle объекта с именем MyShape в Visio. Точно так же MyWorksheet. Calculate идентифицирует метод Calculate объекта рабочего листа с именем MyWorksheet в Excel.
Правда, здесь вы можете задать себе вопрос: "Но как же мне узнать имя объекта, которое необходимо поместить в начале?" Блестящий вопрос! Вот только ответ на этот вопрос требует достаточно пространных пояснений, которые я отложу до раздела ''Идентификация объекта для использования", сосредоточившись сначала на обсуждении свойств, методов и событий. А пока что примите на веру, что объект можно вызвать по его имени.
Как вам стало очевидным из раздела "Что такое объектная модель", каждое VBA приложение имеет свою неповторимую объектную модель (иерархию объектов), а каждый из его объектов имеет свой собственный набор свойств, методов и событий. Чтобы заставить эти объекты работать в программе, вам необходимо хорошо разобраться в деталях объектной модели соответствующего приложения.
Во многих приложениях справка о VBA содержит специальный раздел, в котором вы найдете графическое представление объектной модели этого приложения (рис. 12.4). Если диаграмма объектной модели не появилась перед вами при первом же вызове справки, перейдите в окне справки на вкладку Содержание, где она будет представлена под рубрикой типа Microsoft Excel Objects.
Используя диаграмму объектной модели в качестве гида, вы сможете открыть информацию о конкретном объекте, дважды щелкнув на его имени в диафамме. Иначе получить нужную информацию можно, отыскав в указателе справки соответствующий раздел и открыв его. Как правило, в любом разделе, посвященном объекту, имеются ссылки на другие разделы, содержащие дополнительную информацию о свойствах, методах и событиях соответствующего объекта. (Заметьте, здесь идет речь о справке о VBA для соответствующего приложения, а не об общей справке о приложении или VBA. О работе со справочной системой VBA см. главу 4.)
Рис. 12.4. Объектная модель Excel
Другим жизненно важным средством для изучения свойств, методов и событий объектов и их взаимосвязей в приложении является обозреватель объектов в редакторе Visual Basic.
Полное описание обозревателя объектов см. в главе 6.
Выяснение и установка свойств объектов
Вероятно, свойства - это самые простые для понимания характеристики объекта. Каждое свойство хранит информацию о некотором аспекте внешнего вида, поведения, содержимого объекта или, если хотите, о его генеалогии.
Например, объект Document может иметь свойство Pages, говорящее о числе страниц в документе. Объект Shape может иметь свойство Fill, задающее цвет графического элемента. Объекты CornmandButton (представляющие кнопки в диалоговых окнах) имеют свойство Caption, задающее текст, появляющийся на кнопке.

