Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Создание пользовательских п ÒÉÌÏÖÅÎÉÊ ÓÒÅÄÓÔÁÍ...doc
Скачиваний:
6
Добавлен:
18.11.2019
Размер:
2.02 Mб
Скачать

Оператор With

В VBA перед обращением к каждому из методов или свойств объекта требуется наличие ссылки на объект. Конструкция With…End   With позволяет применить последовательность операторов к объекту, указав его имя только один раз в операторе With. Благодаря этому программа становится менее громоздкой, освобождаясь от повторений ссылки на объект.

Синтаксис оператора

With Object

[statements]

End With

  • Object – имя объекта;

  • statements – последовательность операторов, выполняемых в цикле.

Первая строка этой структуры идентифицирует объект, с которым будут производиться действия. В последующих операторах используются свойства и методы идентифицированного объекта. Оператор End With является закрывающей скобкой для оператора With. Обычно подобная структура записывается при помощи макрорекордера.

Внимание

  • Каждый оператор внутри блока statements начинается с точки.

Пример

В приведенном фрагменте процедуры, записанной с использованием макрорекордера, строится лепестковая диаграмма (radar), для которой определяется интервал значений A1:I13, размещение на отдельном листе при помощи константы xlLocationAsNewSheet и устанавливается заголовок свойствами HasTitle и ChartTitle.

With ActiveChart

.ChartType = xlRadarMarkers

.SetSourceData Source:=Sheets("Лист1").Range("A1:I13"), PlotBy:= xlRows

.Location Where:=xlLocationAsNewSheet

.HasTitle = True

.ChartTitle.Characters.Text = "Покупательная способность"

End With

Оператор установки значения каждого свойства строящейся диаграммы записывается в новой строке и начинается с точки.

Использование объектных переменных

Чтобы получить доступ к свойствам или методам объекта можно использовать два способа: прямое указание на объект и использование объектной переменной. Объектная переменная занимает 4 байта и хранит адрес, указывающий на объект.

Например, установить полужирный шрифт для первой строки активного листа можно оператором ActiveSheet.Rows(1).Font.Bold = True или, используя объектную переменную, можно предложить два способа записи:

Sub font_ex1()

Dim rng As Range

Set rng = ActiveSheet.Rows(1)

rng.Font.Bold = True

End Sub

Sub font_ex2()

Dim fnt As Font

Set fnt = ActiveSheet.Rows(1).Font

fnt.Bold = True

End Sub

Здесь оператор Set создает объект, тип которого установлен при описании объектной переменной. Далее можно обратиться к свойствам или методам созданного объекта. В первом случае это объект типа Range, во втором случае – тип объекта Font.

Преимущества

  • Использование объектных переменных улучшает читабельность программы.

  • Использование объектных переменных уменьшает время выполнения программы, т.к. при каждом выполнении оператора для обращения к объекту не придется проходить полную цепочку иерархии объектов.