Использование объектов в программе
Теперь, когда теоретические основы пройдены, наступает время практических рекомендаций по программированию с использованием объектов 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, задающее текст, появляющийся на кнопке.
Как правило, VBA-программа может выяснить, какая информация хранится в том или ином свойстве, чтобы затем принять решение о том, следует ли предпринять какие-либо действия или просто отобразить на экране текущие установки свойства. Программа может и, наоборот, изменить установки свойств с тем. чтобы соответствующий объект изменил свой внешний вид или поведение, - но только в том случае, когда свойство допускает такое изменение (многие свойства допускают чтение своих значений, но не их изменение).
Изо всех типов свойств легче всего разобраться со свойствами, задающими различные аспекты внешнего вида объекта. Например, объект Shape в Visio среди прочих свойств имеет следующие.
Свойство | Описание |
Area Ul | Площадь графического элемента в специальных внутренних единицах |
FillStyle | Стиль Visio, задающий цвет графического элемента и другие характеристики заливки |
Text | Текст, появляющийся на графическом элементе |
Эти свойства задают внешний вид объекта в документе.
Свойства, относящиеся к поведению объекта, определяют реакцию объекта на внешние раздражители. Например, элементы управления в формах являются объектами, среди свойств которых свойство Enabled определяет, будет ли соответствующий элемент управления вообще реагировать на такие события, как