В VBA, как и в реальной жизни, всякий объект обладает определенными свойствами (Properties), описывающими этот объект или его состояние. Свойства и методы предназначены для доступа к содержимому и функциональности объектов. Например, свойство Value объекта Range используется для просмотра значения в ячейке B3 на рабочем листе Sales из рабочей книги Current.xls:
Workbooks("current.xls").Worksheet("sales").Range("B3").Value=3
Свойство Bold объекта Font позволяет изменить начертания шрифта в ячейке B3 рабочего листа Sales на полужирное:
Workbooks("current.xls").Worksheet("sales").Range("B3").Font.Bold =true
Приведем еще один пример — в приложении Excel объект Range (диапазон ячеек рабочего листа) имеет такие свойства, как:
· Font — используемый шрифт;
· Formula — определяет содержимое ячейки или диапазона ячеек;
· Value — определяет значение ячейки;
и многие, многие другие свойства.
При ссылке на свойство объекта используется тот же самый синтаксис, что и при уточнении иерархического соподчинения объектов. Сначала указывается объект, затем ставится точка, за которой следует свойство:
Объект.свойство
Например, для ссылки на значение активной ячейки используется следующая запись:
ActiveCell.Value
Более всего новичка может запутать тот факт, что некоторые свойства объектов сами в свою очередь могут выступать в качестве объектов. Так, например, объект Application имеет свойство ActiveWindow, которое показывает, какое окно является активным в настоящий момент. В то же время ActiveWindow, как уже упоминалось, является объектом семейства Windows, который может иметь свойство ActiveCell, в свою очередь являющееся объектом класса Range. Далее, ActiveCell имеет свойство Font, также являющееся объектом, имеющим такие свойства, как Name,
Size или Bold. Таким образом, возникает иерархия свойств-объектов, аналогичная иерархии "чистых" объектов. При ссылке на свойства нижних уровней могут использоваться иерархические ссылки вроде следующей:
ActiveWindow.ActiveCell.Font.Size
Обычно при обращении к свойству или объекту не требуется полностью задавать весь иерархический путь, часто годится действующий по умолчанию путь, а может использоваться и специальный оператор With для уточнения пути сразу для группы операторов.
Свойства объектов Excel
Объект Application
1. ActiveWindow – Активное окно
2. ActiveWorkbook – Активная рабочая книга
3. ScreenUpdating – Режим обновления экрана (при выполнении процедуры для ускорения работы можно приостановить обновление отображаемых данных, и снова включить обновление перед выходом из процедуры)
4. StandardFont – Имя стандартного шрифта для новых рабочих листов
Объект Workbook (элемент из семейства Workbooks)
1. ActiveSheet – Активный рабочий лист
2. FullName – Полное имя рабочей книги, включая путь
3. Name – Имя рабочей книги
4. Saved – Признак того, что состояние рабочей книги сохранено на диске (имеет логическое значение False, если в книге были сделаны изменения)
Объект Worksheet
1. Name – Имя рабочего листа
2. OnSheetActivate – Имя процедуры, вызываемой при активизации рабочего листа пользователем
3. Previous – Предыдущий рабочий лист
4. ProtectContents – Режим защиты содержимого ячеек рабочего листа
5. Visible Режим видимости рабочего листа (скрыт или показан)
Есть два способа использования свойств объектов: можно либо получить текущее значение свойства, либо изменить свойство (то есть задать новое значение для этого свойства). При изменении свойства необходимо указать сначала имя объекта, а затем имя свойства, использовав в качестве разделителя точку, затем следует оператор присваивания (=) и новое значение:
Объект.Свойство = новоеЗначение
В этом выражении новое значение может быть константой или формулой, возвращающей нужное значение, и принадлежать к одному из трех типов:
1. Числовое значение. Например, при установлении размера шрифта может использоваться следующий оператор:
ActiveCell.Font.Size = 14
2. Строка символов. Строковые значения заключаются в двойные кавычки. Вот пример изменения используемого шрифта:
ActiveCell.Font.Name = "Courier New Cyr"
3. Логическое значение. Обратите внимание, что в VBA используется обозначение True и False, в отличие от функций рабочего листа, где используется обозначение ИСТИНА и ЛОЖЬ. Вот пример изменения начертания шрифта (применение курсива):
ActiveCell.Font.Italic = True