Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум по VBA(реценц последний).doc
Скачиваний:
9
Добавлен:
01.04.2025
Размер:
2.47 Mб
Скачать
  1. Объекты в vba

Программирование на VBA связано с объектами, их свойствами и методами. Все приложения MS Office с объектной точки зрения построены одинаково. Всегда существует задающий приложение корневой объект Applications (т.е. приложение Word или Excel и т.д.), в который «вложены» все остальные объекты данного приложения.

Если в объект Applications вложен объект Х, то говорят, что у объекта Applications есть свойство Х (свойство – участник, само являющееся объектом), и запись Applications. Х означает обращение к объекту Х. В объект Х могут быть вложены другие объекты, в них – следующие и т.д. Таким образом, система объектов может быть представлена в виде некоторой иерархической структуры. Однако это описание системы объектов несколько упрощено. Для отображения полной картины требуется ввести понятие коллекции. Коллекция – это набор однотипных объектов. Рассмотрим для примера систему объектов, присущих приложению MS Excel.

Объект Applications, представляющий приложение Excel, имеет свойство – участник (т.е. вложенный объект) Workbooks, возвращающее объект Workbooks – коллекцию всех открытых рабочих книг. Каждый элемент коллекции – рабочая книга – является объектом Workbook.

Объект Workbook, представляющий одну рабочую книгу, имеет свойство Sheets. При обращении к этому свойству (участнику) мы получаем доступ к объекту Sheets – коллекции листов данной книги. Каждый элемент этой коллекции – лист – имеет свой тип и потому является объектом Worksheet (рабочий лист) или Chart (диаграмма).

Объект Worksheet, представляющий один рабочий лист, имеет свойство Cells (ячейки), дающее доступ к объекту Range (диапазон). Используя этот объект, можно задавать как все ячейки рабочего листа – всю таблицу, так и любую ее часть.

Способы обращения к одному и тому же объекту. Пусть есть рабочая книга Программирование на VBA.xls, причем открыта только она и в ней содержится всего один рабочий лист “Задача 1”. Тогда к этому листу можно обратиться несколькими способами:

Workbooks(“Программирование на VBA.xls”). Worksheets(“Задача 1”)

Workbooks(1). Worksheets(1)

Workbooks(1). Sheets(1)

Applications. ActiveWorkbook. ActiveSheet

ActiveWorkbook. ActiveSheet

ActiveSheet

Какой из способов обращения применять – зависит от конкретной ситуации. Если одновременно открыто несколько рабочих книг, то второй и третий метод будут ненадежными. В то же время, если нужно работать с активным листом (в какой бы книге он ни содержался), подойдет любой из последних трех методов. Если нужно обратиться к конкретному листу определенной рабочей книги, следует использовать первый метод.

Обращение к конкретному объекту – диапазону, представляющему в данном случае одну ячейку:

Applications. ActiveWorkbook. ActiveSheet. Range(“A1”) = “Таблица 1”.

В этом случае в ячейку с именем “A1”, находящуюся на активном листе активной рабочей книги приложения MS Excel записан текст “Таблица 1”. Объект Range находится на третьем уровне вложенности. Иногда можно опускать имена объектов старших уровней иерархии. Так, в ряде случаев, когда речь идет о конкретном активном рабочем листе активной книги, достаточно ограничиться указанием диапазона: Range(“A1”) = “Таблица 1”.