logo
Конспект лекцій з дисципліни

10.3.6. Конструкція оператора With мови vba.

Після ознайомлення з об’єктами, слід розглянути декілька конструкцій мови VBA, які значно полегшують роботу з об’єктами. Для спрощення розуміння використання оператора With, розглянемо приклад форматування діапазону комірок

Процедура форматування діапазону комірок:

Public Sub Format()

Range("B2:D15").NumberFormat = "#,##0.00"

Range("B2:D15").Font.Name = "MS San Serif"

Range("B2:D15").Font.FontStyle = Regular

Range("B2:D15").Font.Size = 13

Range("B2:D15").Font.Strikethrough = False

Range("B2:D15").Font.Superscript = False

Range("B2:D15").Font.Subscript = True

Range("B2:D15").Font.OutlineFont = True

Range("B2:D15").Font.Shadow = True

Range("B2:D15").Font.Underline = xlUnderlineStyleNone

Range("B2:D15").Font.ColorIndex = xlAutomatic

End Sub

При введені коду процедури ми декілька разів набираємо Range("B2:D15"). Із подібних ситуацій VBA пропонує інший вихід – використання оператора With, який “прив’язує” властивості або методи до об’єкта.

Оператор With має наступний синтаксис:

With об’єкт

Оператори

End With

Лістинг наведений нижче демонструє той же код процедури, але з використанням оператора With, який спочатку “прив’язує” до об’єкта Range("B2:D15") властивість NumberFormat = "#,##0.00", а потім властивість Font через другий оператор With “прив’язується” до об’єкта Range("B2:D15").

Оператори With можна вкладати один в одного (допускається до семи вкладень).

Процедура форматування діапазону комірок із використанням оператора With:

Public Sub Format()

With Range("B2:D15")

.NumberFormat = "#,##0.00"

With .Font

.Name = "MS San Serif"

.FontStyle = Regular

.Size = 13

.Strikethrough = False

.Superscript = False

.Subscript = True

.OutlineFont = True

.Shadow = True

.Underline = xlUnderlineStyleNone

.ColorIndex = xlAutomatic

End With

End With

End Sub