Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование VBA.pdf
Скачиваний:
374
Добавлен:
03.05.2015
Размер:
3.07 Mб
Скачать

25

Указание иерархии объектов VBA аналогично указанию иерархии папок в файловой системе Windows при назначении пути для доступа к файлу.

2.8.3.Работа с объектами

Работа с любым объектом заключается в следующем:

задание свойств объекта;

получение значений свойств объекта;

выполнение методов объекта.

2.8.3.1. Задание свойств объекта

Задание значения свойству объекта имеет следующий формат:

Объект.ИмяСвойства = Значение

Объект обозначает имя объекта, а ИмяСвойства – соответственно имя свойства, которому присваивается значение. Имя объекта отделяется от имени свойства точкой. Например, чтобы определить свойство Value (Значение) объекта Range , т.е. поместить в ячейку A1 значение 10, а в ячейку B1 значение Товар, применяются следующие инструкции:

Range("A1").Value = 10

Range("B1").Value = “Товар”

Чтобы получить значение свойства объекта, используется формат:

ИмяПеременной = Объект.ИмяСвойства

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

Dim SngValue As Single

SngValue = Range("A1").Value

Для вывода на экран значения, содержащегося в ячейке B1, можно использовать одну из следующих инструкций:

MsgBox "Ячейка B1 содержит значение " & Range("B1").Value или

MsgBox "Ячейка B1 содержит значение " & SngValue

2.8.3.2. Использование методов объекта

Для выполнения метода объекта применяется один из следующих форматов:

ИмяОбъекта.ИмяМетода

ИмяОбъекта.ИмяМетода Аргумент1, Аргумент2, …, АргументN ИмяОбъекта.ИмяМетода (Аргумент1, Аргумент2, …, АргументN)

26

Это означает, что:

метод может не иметь Аргументов или все они не обязательные;

метод может иметь несколько Аргументов, не заключаемых в круглые скобки;

метод иметь несколько Аргументов, заключаемых в круглые скобки.

Кроме того, аргументы могут быть неименованными и именованными, обя-

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

НаименованиеАргумента := ЗначениеАргумента Примеры

В этом примере удаляются формулы и форматирование ячеек A1:G37 на листе Лист1.

Worksheets("Лист1").Range("A1:G37").Clear

В следующем примере очищается область диаграммы Диаграмма1 (объект ChartArea; удаляются данные и форматирование диаграммы).

Charts("Диаграмма1").ChartArea.Clear

Например, для выполнения метода Open (Открыть) рабочей книги Примеры запишите код

Workbooks("Примеры").Open

Некоторые методы имеют аргументы, обязательные или необязательные. В следующем примере метод SaveAs (Сохранить), применяемый для сохранения текущей рабочей книги, в качестве аргумента использует имя файла, в котором будет сохранена рабочая книга.

ThisWorkbook.SaveAs Filename:= "Текущий бюджет"

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

Второй способ передачи значений параметров при вызове метода отличается от первого лишь отсутствием круглых скобок:

ИмяОбъекта.ИмяМетода аргумент!, аргумент2, ...

Требования к порядку следования значений такие же, как и для первого способа.

27

2.8.3.3. Переменные-объекты

Переменными-объектами называются переменные, имеющие тип Object. Переменные-объекты объявляются точно так же, как переменные других типов, т.е. с помощью оператора Dim, используя при этом общий тип данных Object, или с помощью оператора Set, назначив переменнымобъектам тип конкретного объекта. Ниже приведены несколько примеров объявления переменных-объектов.

Dim Таблица1 As Object

Dim Продажи As Worksheet

Dim Книга1 As Workbook

Dim Курс As Range

Set Лист1 = Workbooks("Финансы").Worksheets("Бюджет")

Set Лист2 = Workbooks("Финансы ").Worksheets("Бюджет")

Set Книга1 = Workbooks("Финансы")

Set Таблица1 = Workbooks("Бюджет").Worksheets(1).Range("A1:A12")

После назначения переменным-объектам конкретных объектов имена переменных-объектов можно использовать в кодах процедур вместо имен самих объектов. Пример такого использования показан в листинге процедуры Объекты .

Sub Объектs()

Dim РабОбл As Range

Set РабОбл = Workbooks("Финансы ").Worksheets("Лист1").Range("A2:D2")

РабОбл.Font.Bold = True

РабОбл.Font.Italic = True

РабОбл.Font.Name = "Courier"

End Sub

В этой процедуре имя переменной РабОбл применяется вместо ссылки на диапазон A2:D2, который находится на рабочем листе Лист1 рабочей книги Финансы. Такая замена упрощает написание длинного полного имени объекта. В результате выполнения этой процедуры шрифт в ячейках рабочего листа Лист1 будет отформатирован как жирный(Bold) курсив(Italic) тип Courier. Например, слово “шрифт” будет иметь вид

“шрифт”.

2.8.3.4. Коллекции

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

Workbooks("Финансы ").Worksheets("Лист1").Range("A2:D2")