Объектная модель MS Excel представляет собой иерархию объектов, подчинённых одному объекту Application, который соответствует самому приложению MS Excel. Многие из этих объектов собраны в библиотеке объектов MS Excel, но некоторые из них, например объект Assistant, входят в библиотеку объектов MS Office, являющейся общей для всех офисных приложений. На следующих схемах представлены основные компоненты объектной модели MS Excel (здесь имена единичных объектов находятся в прямоугольниках с двойным обрамлением; имена объектов из семейств – помещены в скобки после имени семейства).
Объект Application и непосредственно подчиняющиеся ему объекты
Объект Worksheet и непосредственно подчиняющиеся ему объекты
Основные объекты и семейства
Объект
Семейство
Описание
Application
Активное приложение MS Excel
Workbook
Workbooks
Семейство объектов Workbooks, каждый из которых представляет открытую рабочую книгу
Worksheet
Worksheets
Семейство объектов Worksheets, каждый из которых представляет рабочий лист в данной рабочей книге.
Chart
Charts
Семейство объектов Charts, каждый из которых представляет диаграмму в данной рабочей книге. Внедрённой в рабочий лист диаграмме соответствует как объект Chart, так и объект ChartObject, семейства ChartObjects.
Name
Names
Семейство объектов Names, каждый из которых является именем объекта, например именем диапазона.
Style
Styles
Семейство объектов Styles, каждый из которых является встроенным или пользовательским стилем, используемым в рабочей книге.
Window
Windows
Семейство объектов Windows, каждый из которых представляет собой окно рабочей книги.
WorksheetFunction
Объект, являющийся контейнером для функций рабочего листа.
Rang
Диапазон ячеек. Если в диапазоне указываются только имена столбцов или строк, то объект Range задаёт диапазон, состоящий из указанных столбцов или строк. Например: Range(“A:C”) задаёт диапазон, состоящий из столбцов A, B и C, а Range(“2:2”) – из второй строки.
Другим способом работы со строками и столбцами являются семейства рабочего листа Rows и Columns, возвращающие семейства строк и столбцов. Например, столбцом A является Columns(1), а второй строкой Rowd(2).
Ячейка – это частный случай диапазона, который состоит из единственной ячейки. Поэтому объект Range позволяет работать как с диапазоном ячеек, так и с одной ячейкой.
Альтернативным способом работы с ячейкой является свойство Cells объекта Worksheet. Например, ячейку A2 как объект можно описать двумя равносильными способами Range(“A2”) и Cells(1, 2).
В свою очередь ячейка, возвращаемая свойством Cells, используемым как параметр объекта Range, позволяет записывать диапазон в альтернативном виде, который иногда удобен для работы. В качестве примера этой формы записи диапазона служат следующие две инструкции, возвращающие один и тот же диапазон:
Range(“A2:C3”)
Range(Cells(1, 2), Cells(3, 3))
Диапазон так же, как и рабочий лист, обладает свойством Cells, которое, если используется без параметров, возвращает множество всех ячеек, входящих в диапазон. Если же оно используется с параметрами, то возвращает конкретную ячейку из диапазона. Например, в следующей инструкции значение 2 вводится в ячейку C3:
Range(“B2:D4”).Select
Selection.Cells(2, 2).Value = 2
Замечание. В иерархии MS Excel объект Range следует сразу за объект Worksheet. Объект Range является одним из ключевых объектов VBA. Объект Selection проявляется в VBA двояко – либо как результат работы методы Select, либо при вызове свойства Selection. Тип получаемого объекта зависит от типа выделенного объекта. Чаще всего объект Selection принадлежит классу Range и при работе с ним можно использовать свойства и методы объекта Range. Особенность объектов Range и Selection заключается в том, что они не являются элементами никакого семейства объектов.