Access 2002

Использование функции GetObject


Она отличается лишь тем, что использует для хранения указателя на объект Application переменную типа Object. Это единственный объектный тип, который можно использовать при отсутствии ссылки на библиотеку типов. Кроме того, для создания объекта в последнем примере использовалась функция CreateObject, а не ключевое слово New. Обратите  на то, что программный идентификатор "Excel .Application. 10" передан этой функции как текст. Его можно было бы хранить в переменной и формировать даже во время выполнения программы — VBA не нужно знать его заранее. При использовании ключевого слова New это было бы невозможно, поскольку ProglD должен быть жестко закодирован в этом операторе.

Функция GetObject подобна CreateObject, но вместо одного обязательного аргумента она принимает один из двух необязательных, имя документа или ProglD, либо оба их одновременно. Общий синтаксис ее вызова таков:

Set ОбъектнаяПеременная – GetObject([docname], [ProglD])

Обратите  на то, что, хотя оба аргумента функции являются необязательными, один из них указать необходимо. Функция GetObject более гибка, чем CreateObject или оператор New, поскольку она позволяет создать объект документа приложения-сервера (например, рабочей книги Excel) или получить ссылку на объект уже существующего экземпляра приложения. Гибкость функции GetObject проявляется в варьировании используемых аргументов. В  10.1 описаны возможные комбинации параметров функции GetObject.

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

Комментарии закрыты