1

Тема: Инициализация объектов в VBA

Тренер и преподаватель по программированию Т. Батыршинов в своем известном курсе по Java хорошо проанализировал процедуру инициализации объекта. Я попробовал применить этот же подход к объяснению процесса инициализации объектов в VBA.
Также был использован учебный материал по VBA, разработанный Академией специальных курсов по информационным технологиям («AskIT») (внешняя ссылка).

В VBA имеются три способа инициализации объекта:
1) Позднее связывание.
2) Раннее связывание.
3) Раннее связывание с использованием оператора New.

Рассмотрим подробнее как это делается и что при этом происходит в компьютере.

1. Позднее связывание:

Dim oApp As Object 
Set oApp = CreateObject ("Word.Application") 
MsgBox oApp.UserName 

В этом случае в компьютере последовательно выполняются следующие действия:

1) Создалась переменная oApp типа Object.
2) В памяти создался объект типа Word.Application.
3) Присвоили переменной oApp созданный объект.
4) После этого переменная oApp ссылается на созданный объект Word.Application.

При отсутствии второй строки выводится сообщение «Объект не установлен (не привязан)».

2) Раннее связывание:

Dim oApp As Word.Application 
Set oApp = CreateObject("Word.Application")
MsgBox oApp.UserName 

В этом случае в компьютере последовательно выполняются следующие действия:

1) Создалась переменная oApp типа Word.Application.
2) В памяти создался объект типа Word.Application.
3) Присвоили переменной oApp созданный объект.
4) После этого переменная oApp ссылается на созданный объект Word.Application.

При отсутствии второй строки выводится сообщение «Объект не установлен (не привязан)».

3) Раннее связывание с использованием оператора New:

Dim oApp As New Word.Application 
MsgBox oApp.UserName

В этом случае в компьютере также последовательно выполняются аналогичные действия.

1) Создалась переменная oApp типа Word.Application.
2) В памяти создался объект типа Word.Application.
3) Присвоили переменной oApp созданный объект.
4) После этого переменная oApp ссылается на созданный объект Word.Application.

В прилагаемом файле описываемая проблема рассмотрена более подробно и с иллюстрациями. В файле используются схемы, идея которых была предложена Т. Батыршиновым.

Post's attachments

Объекты VBA 1.docx 185.87 Кб, 8 скачиваний с 2013-08-21 

You don't have the permssions to download the attachments of this post.
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

2

Re: Инициализация объектов в VBA

Предлагаю читателям блога самостоятельно рассмотреть по описанной схеме процедуры инициализации класса Property Let, Property Set и Property Get.

Напомним, что:
Процедура Property Get обеспечивает возможность считывания значения свойств.
Процедура Property Let служит для объявления имен свойств, значениями которых являются числовые данные.
Процедура Property Set служит для объявления имен свойств, значениями которых являются объекты.
(см. внешняя ссылка).

Результат проведенного анализа можно разместить в данную ветку блога.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.