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

В популярных языках программирования переменная содержит одно значение. Чтобы присвоить значение 4 переменной х, можно использовать выражение х = 4. Рассмотрим отдельную ячейку в Excel. Существует много свойств, описывающих ячейку.

Ячейка может содержать числовое значение, для нее указывается размер и цвет шрифта, строки, столбца, определяется формула, примечание и т.п. В VBA можно создать «суперпеременную», которая будет содержать всю информацию о ячейке или даже целом объекте. Выражение х = Range("A1") присваивает переменной х текущее значение ячейки A1. Для создания объектной переменной применяется ключевое слово Set.

Set х = Range("A1)

Вы создали «суперпеременную», которая содержит все свойства ячейки.

Вместо использования переменной с одним значением можно работать с переменной, в которой предоставляется доступ к значениям многих свойств, связанных с этой переменной. Можете использовать выражение х.Formula, чтобы увидеть формулу в ячейке А1, или х.Font.colorlndex, чтобы определить цвет ячейки.

В примерах, приводимых в этом разделе, часто используется объектная переменная PT. Она применяется в тех случаях, когда определяется ссылка на сводную таблицу. Если, например, в коде содержится ссылка ActiveSheet.PivotTables("PivotTable1"), можно воспользоваться переменной объекта РТ, чтобы уменьшить объем кода.

Использование конструкций with и End with для уменьшения объема кода

При работе со сводными таблицами приходится часто изменять значения их отдельных параметров. Ниже приводится пример кода (подробнее он объясняется далее), каждая строка которого изменяет значение параметра сводной таблицы.

	PT.NullString=0
	PT.RepeatAllLabels xlRepeatLabels
	РТ.ColumnGrand=False
	PT.RowGrand-Fa1se
	PT.RowAxisLayout xlTabularRow
	PT.TableStyle2="PivotStyleMediuml0"
	PT.TableStyleRowStripes=True

При выполнении перечисленных выше строк кода интерпретатор VBA должен постоянно расшифровывать, что означает ссылка «РТ». Чтобы ускорить выполнение кода, укажите ссылку РТ один раз. Для каждой строки кода, которая начинается точкой, подразумевается ссылка на объект, указанный с помощью конструкции With. Блок кода завершается конструкцией End With.

With РТ
	.NullString=0
	.RepeatAllLabeIs xlRepeatLabels
	.ColumnGrand=False
	.RowGrand-False
	.RowAxisLayout xlTabularRow
	.TableStyle2="PivotStyleMediuml0"
	.TableStyleRowStripes=True
End With
Top