Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование в Excel.doc
Скачиваний:
21
Добавлен:
03.05.2019
Размер:
1.48 Mб
Скачать

1.2.3. Объявление объектной переменной

Вы объявляете объектную переменную, указывая либо универсальный тип Object, либо конкретное имя класса. Следующий оператор объявляет объектную переменную типа Object:

Dim mySheet As Object

Если тип переменной задан как Object, Visual Basic не знает, с объектами какого типа Вы будете использовать ее в дальнейшем. Поэтому Visual Basic при компиляции не сможет проверить, существует ли такой объект, корректно ли применяются его методы и свойства, и не сумеет связать эту информацию с объектной переменной — иначе говоря, Visual Basic не выполнит раннее связывание (early binding) объектной переменной. Лишь когда Вы запустите программу, и этой переменной будет присвоена ссылка на конкретный объект, Visual Basic получит нужную информацию и выполнит позднее связывание (late binding). Универсальные объектные переменные полезны только в том случае, когда Вам заранее не известен конкретный тип объекта или когда за переменной периодически закрепляются объекты разных классов. Так что по возможности указывайте при объявлении объектной переменной имя конкретного класса, например, так:

Dim mySheet As Worksheet Dim myPres As Presentation Dim myRange As Range Dim myApp As Application

Тип объектной переменной (в дополнение к конкретному имени класса) можно квалифицировать именем приложения, которое предоставляет данный объект (см. пример ниже). Это полезно в программе, использующей объекты из нескольких библиотек (особенно если в них содержатся объекты с одинаковыми именами).

Dim wndXL As Excel.Window Dim wndWD As Word.Window Dim appWD As Word.Application

Для закрепления объекта за переменной предназначен оператор Set:

Dim myRange As Excel. Range Set myRange = Worksheets("Sheet1").Range("A1")

Если Вы не объявили объектную переменную явно и в момент присвоения забыли указать ключевое слово Set, Visual Basic не закрепит объект за этой переменной, а присвоит ей значение свойства объекта по умолчанию. В следующем примере переменная myRange получает значение свойства по умолчанию объекта Range (каковым является свойство Value):

myRange = Worksheets("Sheet1").Range("A1") ' пропущен оператор Set!

1.2.4. Встроенные константы

Библиотека объектов каждого приложения Office 97 предоставляет набор встроенных констант, которые можно использовать для задания значений свойств или передачи аргументов свойствам и методам. Набор встроенных констант, отражающих допустимые значения какого-либо свойства или параметра, передаваемого методу или свойству, представляется перечислимым типом. Для многих свойств и методов в качестве типа возвращаемого значения или параметра Вы увидите в Object Browser (средство просмотра объектов) именно перечислимый, а не базовый тип данных. Чтобы открыть в Visual Basic Editor окно Object Browser (Просмотр объектов), нажмите клавишу F2. С его помощью можно просмотреть, какие константы составляют перечислимый тип, и каковы их значения. Например, в списке Classes (Классы) щелкните строку Application, а в списке Members Of (Компонент) — строку Display Alerts. В нижней части окна Object Browser (Просмотр объектов) Вы увидите следующий текст:

Property DisplayAlerts As WdAlertLevel

WdAlertLevel — перечислимый тип, объединяющий константы, которые представляют все допустимые значения свойства DisplayAlerts. Перечислимый тип нетрудно узнать по имени, поскольку оно всегда начинается с префикса, обозначающего библиотеку объектов, в которой определен этот тип, — например: Mso, Wd, Xl, Ac, Pp, VB или Fm. (Имена встроенных констант начинаются с тех же префиксов, что и имена перечислимых типов.) Чтобы просмотреть константы перечислимого типа, щелкните подчеркнутую строку WdAlertLevel. После этого WdAlertLevel станет текущим в списке классов Object Browser, и константы этого типа появятся в списке Members Of (Компонент). Если щелкнуть одну из констант, в нижней части окна Object Browser (Просмотр объектов) будет показано значение, которое представляет данная константа. Подробнее об использовании диалогового окна Object Browser см. главу 2 “Введение в модели объектов”.

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

Application.DisplayAlerts = -1 Application.DisplayAlerts = wdAlertsAII

Константы легче читать, чем литеральные значения. Кроме того, если эти значения в будущих версиях приложений изменятся, Вам вряд ли придется модифицировать программу, использующую константы. Вполне вероятно, что литеральное значение -1 больше не будет соответствовать параметру, заставляющему выводить все предупреждения и сообщения, но константа wdAlertsAll — будет обязательно.