Свойства, методы и события объектов

Объекты приложения обладают определенными свойствами, методами и событиями. Свойства отражают способы хранения данных в объектах или содержат характеристики объекта. Свойства могут возвращать вложенные объекты, поддерживая таким образом иерархию объектов MS Office. Методы осуществляют действия с объектами. Многие объекты реагируют на события. Большая часть событий связана с действиями пользователя, например, открытие файла или изменение данных. Если написать программу, обрабатывающую события, то приложение будет реагировать на действия пользователя.

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

Свойства объекта делятся на две группы:

· свойства-участники (accessors), представляющие вложенные объекты;

· терминальные свойства (terminals), задающие характеристики объекта или его состояние.

Свойства-участники позволяют получить доступ к объекту, находящемуся на любом уровне вложенности. Например, для MS Excel запись Application.ActiveWorkbook осуществляет доступ к активной рабочей книге, а запись ActiveWorkbook.ActiveSheet – к активному листу активной рабочей книги. Изменение значений терминальных свойств – это один из способов изменить внешний объекта.

Свойства имеют статус:

· Read-Write (далее R/W) предполагает возможность изменения свойства;

· Read-Only (далее R/O) означает, что доступно только тестирование значения свойства.

Статус и типы значений свойств объектов можно уточнить, используя справочную систему (Help или Object Browser). Некоторые свойства являются общими для многих объектов и для разных объектов могут иметь разный статус, как, например, свойства Height, Width, являющиеся свойствами интервалов, окон и приложения.

Свойства объектов изменяются при помощи оператора присваивания или под влиянием методов. В качестве значений свойств могут использоваться константы приложения, например, константа xlCalculationManual устанавливает ручной пересчет таблицы Excel.

Синтаксис операторов присваивания object.property=expression

· object – ссылка на объект, над которым совершается действие;

· property – название свойства, значение которого необходимо изменить;

· expression – выражение, представляющее новое значение свойства объекта.

Каждое свойство может принимать значения только определенного типа, например, "текстовый", "числовой" или "дата", поэтому тип результата вычисления выражения должен соответствовать типу свойства, т. е. если свойство является числовым, то и результат вычисления выражения должен быть числом или должен корректно преобразовываться в число. Например, оператор ActiveCell.Font.Bold="b" является ошибочным, так как свойство Bold имеет тип Boolean и может принимать значения только True или False (1 или 0).

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

Синтаксис оператора, возвращающего значение свойства:

variable=object.property

· variable – переменная или свойство некоторого объекта;

· object – ссылка на объект, свойство которого запоминается или тестируется;

· property – название свойства, значение которого необходимо получить.

Методы – это действия, которые выполняются с объектом. Например, если необходимо очистить интервал ячеек, то используется метод Clear для объекта Range. Очевидно, что методы могут влиять на значения свойств, например, метод Clear изменяет свойство Value интервала ячеек, устанавливая его в Empty.

Подобно процедурам, методы могут принимать аргументы. Функции VBA и методы Application могут иметь одинаковые имена, но различные аргументы, например, функция InputBox класса Interaction и метод InputBox класса Application.

Каждый объект имеет свои собственные методы. Некоторые методы являются уникальными, а другие встречаются у нескольких объектов. Например, метод Delete может удалять графический объект и рабочий лист рабочей книги Excel.

Синтаксис вызова метода без аргументов – object.method.

Например, ActiveCell.Justify.

Синтаксис вызова метода с аргументами:

· variable=object.method(arguments) – функциональная форма вызова (аргументы указываются в скобках через запятую после названия метода). Функциональная форма вызова метода используется, если необходимо сохранять значение, возвращаемое методом;

· object.method arguments – операторная форма вызова (аргументы записываются через пробел после названия метода). Операторная форма вызова метода используется, если не нужно сохранять возвращаемое методом значение.

Аргументы можно задавать, используя позиционное или произвольное расположение. Во втором случае используются поименованные аргументы.

Событие, например, – это нажатие командной кнопки в диалоге, закрытие или активизация окна документа.