Microsoft Office (Разработка документов в Word, Excel и приложений на Visual Basic for Application). - Учебное пособие (Н.А.Устинов)

Иерархия оъектов excel

В Excel имеется свыше 100 различных объектов, находящихся на разных уровнях иерархии, т.е. некоторые объекты находятся внутри других. (Объектную модель Excel можно получить с помощью справки). На верхнем уровне иерархии расположен единственный объект Application. Пятнадцать объектов расположены на втором уровне:

AddIn объект, представляющий файл надстройки

Assistant объект для управления Помощником.

AutoCorrect объект для доступа к средствам автозамены.

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

Debug объект, представляющий окно отладки Excel

Dialog объект, представляющий диалоговое окно Excel

FileFind объект для доступа к средствам диалогового окна FileFind

FileSearch объект, применяемый для поиска файлов

Name объект, представляющий имя диапазона ячеек.

ODBCError объект, используемый для представления ошибок при операциях с базами данных ODBC

RecentFile объект, представляющий файл из списка используемых файлов

VBE объект, применяемый для управления редактором VBE

Window объект, используемый для доступа к различным окнам Excel

Workbook объект, представляющий файл рабочей книги.

WorkSheetFunction объект, используемый для исполнения функций рабочего листа из программы VBA.

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

Чтобы написать подпрограмму на VBA, в которой устанавливалось бы некоторое свойство объекта Range для первой ячейки первого рабочего листа первой рабочей книги. Обращение будет следующим:

Application. Workbooks(1). Worksheets(1).Range(“A1”).Value=1

Если строка кода выполняется непосредственно из Excel, то указанная строка может быть записана в виде:

Workbooks(1). Worksheets(1).Range(“A1”).Value=1

Указанную запись можно сократить, если обращение производится к активной рабочей книге:

Worksheets(1).Range(“A1”).Value=1

Отметим, что активная рабочая книга не обязательно совпадает с книгой Workbooks(1).

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

Для обращения к активному рабочему листу можно аналогично использовать ссылку с именем ActiveSheet:

ActiveSheet. Range(“A1”).Value=1

Если в рабочей книге имеется только один рабочий лист или свойство устанавливается для активного рабочего листа, то ссылка изобразится так:

Range(“A1”).Value=1

Некоторые объекты имеют свойства по умолчанию. Value – это свойство по умолчанию объекта  Range. Тогда запись будет Range(“A1”)