Оператор With
В VBA доступ к свойствам и методам объекта осуществляется через точку. Например ActiveSheet.Cells(1,1).
Если нужно обратиться к нескольким свойствам одного объекта, то придется каждый раз писать имя этого объекта.
Но есть способ этого избежать. Оператор With используется для указания обьекта, с которым мы будем работать.
Это выглядит так:
With объект
операции с объектом
End With
Рассмотрим пример. В нижеприведенном коде выводятся имя и свойство видимости объекта таблицы:
Sub Test()
MsgBox (Application.Worksheets.Item(1).Name)
MsgBox (Str(Application.Worksheets.Item(1).Visible))
End Sub
Используя With это можно сделать так:
Sub Test()
With Application
With .Worksheets
MsgBox (.Item(1).Name)
MsgBox (Str(.Item(1).Visible))
End With
End With
End Sub
Используя With можно получить доступ и к структурам, определенным пользователем:
'----------- Описание структуры --------
Type Cars
Vendor As String
Model1 As String
Model2 As String
End Type
'----------- Использование --------
Sub Test()
Dim MyCars As Cars
With MyCars
.Vendor = "Ford"
.Model1 = "Fiesta"
.Model2 = "Focus"
MsgBox (.Vendor)
End With
End Sub