Следующий пример изменяет текст, отображаемый в строке состояния в нижнем левом углу окна приложения, присваивая строку свойству StatusBar объекта Application (объект Application — это host-приложение VBA, в данном случае
— Excel):
Application.StatusBar = "Генерировать отчет за третий квартал" Используйте свойство Application.StatusBar в своих процедурах для отображения сообщений о действиях, которые выполняет процедура, особенно если некоторые из этих действий занимают много времени (например, сортировка длинного списка). Добавляя сообщение в строку состояния, вы даете знать пользователю, что процедура все еще работает. Исполь-
зуйте оператор, подобный следующему: Application.StatusBar = "Сообщение о текущих действиях"
Не забывайте возвращать управление строке состояния при работе в Excel. В Excel необходимо устанавливать свойст-
во Application.StatusBar в False, когда процедура выполнена,
иначе Excel продолжает отображать заданное вами сообщение строки состояния. Используйте оператор, подобный следующему, для удаления сообщения из строки состояния и возврата управления строке состояния:
Application.StatusBar = False
|
|
|
Таблица 7.3 |
|
Некоторые свойства объектов в Excel |
||
Свойство |
|
Тип/Что означает |
Где найти |
ActiveCell |
|
Object: активная ячей- |
Application, Window |
|
|
ка в рабочем листе |
|
ActiveChart |
|
Object: активная диа- |
Application, Window, |
|
|
грамма |
Workbook |
ActiveSheet |
|
Object: активный лист |
Application, Window, |
|
|
|
Workbook |
Address |
|
Возвращает координа- |
Range |
|
|
ты ячейки указанного |
|
|
|
объекта |
|
113
|
|
Продолжение табл. 7.3 |
|
Cells |
Диапазон объекта |
|
Application, Range, |
|
Range |
|
Worksheet |
Charts |
Коллекция диаграмм |
|
Application, Work- |
|
|
|
book |
Count |
Integer: число объек- |
|
Все объекты коллек- |
|
тов в коллекции |
|
ции |
Formula |
String: формула для |
|
Диапазон |
|
ячейки рабочего листа |
|
|
Index |
Integer: число объек- |
|
Worksheet |
|
тов в коллекции |
|
|
Name |
String: имя объекта |
|
Application, Work- |
|
|
|
book и в других объ- |
|
|
|
ектах |
Path |
String: драйвер и ката- |
|
Addin, Application, |
|
лог, в котором сохра- |
|
Workbook |
|
нен объект |
|
|
Saved |
Boolean: сохранялась |
|
Workbook |
|
ли рабочая книга по- |
|
|
|
сле последних изме- |
|
|
|
нений |
|
|
Selection |
Object: текущий выде- |
|
Application, Window |
|
ленный фрагмент |
|
|
Sheets |
Коллекция листов ра- |
|
Application, Work- |
|
бочей книги |
|
book |
StatusBar |
String: сообщение в |
|
Application |
|
статусной строке |
|
|
ThisWorkBook |
Object: рабочая книга, |
|
Application |
|
из которой выполня- |
|
|
|
ется текущая проце- |
|
|
|
дура |
|
|
Type |
Integer: число, указы- |
|
Window, Worksheet, |
|
вающее тип объекта |
|
Chart |
114
|
|
Окончание табл. 7.3 |
Visible |
Boolean: отображается |
Application, Work- |
|
или нет объект на эк- |
sheet, Range и в дру- |
|
ране |
гих объектах |
Value |
(варьируется): дейст- |
Range |
|
вительное значение, |
|
|
отображаемое в ячей- |
|
|
ке |
|
Workbooks |
Коллекция рабочих |
Application |
|
книг |
|
Worksheets |
Коллекция рабочих |
Application, Work- |
|
листов |
book |
Некоторые свойства из табл. 7.3 использованы в коде следующего листинга.
Листинг. Активный лист, ячейка
1Sub TestObjectOl()
2'имя активного листа
3MsgBox ActiveSheet.Name
5'адрес активной ячейки:
6MsgBox ActiveCell.Address
8'содержимое активной ячейки
9MsgBox ActiveCell.Formula 10: 11: End Sub
Как видите, даже небольшие знания об объектах дают
некоторые дополнительные возможности для работы со средой Excel. Но все еще впереди.
|
|
|
Таблица 7.4 |
|
Некоторые свойства объектов Word |
||
Свойство |
|
Тип/Значение |
Имеется в объектах |
ActiveDocument |
|
Object: активный до- |
Application |
|
|
кумент |
|
115
|
Продолжение табл. 7.4 |
|
ActivePrinter |
String: имя активного |
Application |
|
принтера |
|
ActiveWindow |
Object: активное окно |
Application, Docu- |
|
|
ment |
Count |
Long: число объектов |
Во всех объектах |
|
в коллекции |
коллекций |
Name |
String: имя объекта |
Application, Book- |
|
|
mark, Dictionary, |
|
|
Document и в др. |
Path |
String: драйвер и путь |
Addin, Application, |
|
к папке, в которой со- |
Dictionary, Docu- |
|
хранен объект |
ment и в других |
Range |
Object: часть докумен- |
Bookmark, Para- |
|
та, содержащаяся в |
graph, Selection, |
|
указанном объекте |
Table и в других |
Saved |
Boolean: был ли со- |
Document, template |
|
хранен текст после |
|
|
последнего изменения |
|
Selection |
Object: текущий выде- |
Application, Pane, |
|
ленный фрагмент |
Window |
StatusBar |
String; сообщение |
Application |
|
строки состояния |
|
Visible |
Boolean: отображается |
Application, Border |
|
объект на экране или |
|
|
нет |
|
Перед подробным изучением свойств и методов встроенных объектов приведем некоторые примеры использования свойств и методов из таблицы.
Запустите Word. Откройте два документа. В одном из них в Редакторе VBA создайте новый модуль и введите код следующего листинга.
Листинг. Активный документ
1 Sub ActDocum()
116
2
3MsgBox ActiveDocument.Name, , _
4"Наименование активного документа"
6MsgBox ActiveDocument.Path, , _
7"Путь сохранения документа"
9 ActiveDocument.Close 'закрыть активный документ
10:
11:MsgBox ActiveDocument.Name, ,
12:"Наименование активного документа"
13:End Sub
7.7. Использование методов объекта
Методы объекта используются в операторах VBA так, как использовались бы любые встроенные процедуры VBA.
Метод объекта имеет следующий синтаксис:
Object.Method
Для методов объектов, имеющих обязательные и необязательные аргументы, используйте такой синтаксис:
Object.Method Argument1, Argument2, Argument3 ...
В обеих строках синтаксиса Object представляет любую допустимую объектную ссылку VBA, a Method — имя любого метода, принадлежащего объекту, на который выполняется ссылка. Во второй строке синтаксиса Argument1, Argument2 и т.д. представляют аргументы в списке аргументов метода. Как в случае с аргументами для вызова процедуры VBA, необходимо перечислять аргументы метода в определенном порядке, отделяя каждый аргумент в списке запятой и включая отме-
чающие запятые (place holding commas) для пропущенных не-
обязательных аргументов. Метод может иметь один или несколько аргументов в своем списке или не иметь их совсем; аргументы метода могут быть обязательными или необязательными.
Пример: рабочие книги Excel имеют метод Activate, который делает рабочую книгу активной и активизирует первый
117