Основы офисного программирования и язык VBA

       

Операции с одним объектом. Оператор With


Если в одном блоке программы предстоит выполнить несколько операций с одним объектом, то, чтобы не повторять многократно имя этого объекта, можно ввести оператор With.

Синтаксис:

With объект [операторы] End With

Здесь объект - имя объекта или переменной, определенного пользователем типа, а операторы - последовательность операторов, которые могут действовать с указанным объектом. В этих операторах имена свойств и методов указанного объекта можно начинать с точки, опуская имя самого объекта.

Допустим, пользовательский тип Person и переменная MyFriend определены так.

Type Person Name As String Age As Integer Height As Single End Type

Dim MyFriend As Person

Тогда присвоение значений свойствам переменной MyFriend можно произвести с помощью оператора With:

With MyFriend Name = "Сергей" Age= 35 .Height = 178.5 End With

Подчеркнем, что в каждом блоке имя лишь одного объекта задается по умолчанию. При вложенности операторов With:

With объект1 операторы1 With объект2 операторы2 End With

End With

в блоке операторы2 имя объекта1 нужно указывать полностью. Если же объект2 - элемент (подобъект) объекта1, то, использовав оператор With объект2, можно получить во внутреннем блоке сокращенный доступ к свойствам объекта "объект1. объект2".

Например, если к типу Person добавить данные о встрече:

Type Meeting Place As String Date As Date End Type

Type Person Name As String Age As Integer Height As Single LastMeeting As Meeting End Type

Dim NewAcquaintance As Person

то задавать данные о новом знакомом NewAcquaintance можно, используя вложенные операторы With.

With NewAcquaintance .Name = "Елена" .Age= 40 .Height = 168 With.LastMeeting .Place= "библиотека" 'этот оператор эквивалентен: 'NewAcquaintance. LastMeeting.Place="библиотека" .Date= #08/03/99# End With End With



Содержание раздела