RSS

Иерархия(структура) рабочей книги Excel

Давайте рассмотрим общую иерархию или структуру рабочей книги Excel с точки зрения VBA!? Это в дальнейшем при разработке Ваших приложений поможет понять всю зависимость объектов таких как рабочие листы, рабочие книги…
Итак, структура:

Верх иерархии это конечно само приложение Excel т.е. Application.

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

Sub Test()
Dim Book As Workbook
Set Book = Workbooks(«Книга1.xlsm»)
Book.Worksheets(1).Cells(1, 1) = «Тест»
End Sub

После Workbook следует страница Worksheet. Объекты Worksheet в книге Excel объединены в коллекцию Worksheets или Sheets, из которой можно выбрать нужный лист также по номеру или индексу

Sub Test()
Dim Book As Workbook
Dim List As Worksheet

Set Book = Workbooks(«Книга1.xlsm»)

Set List = Book.Worksheets(1)
List.Cells(1, 1) = «Тест»

Set List = Book.Sheets(«Лист1»)
List.Cells(5, 5) = «Тест2»

End Sub

И в конце всей иерархии объект Range или Cells т.е. ячейка (и). Данные объекты предоставляют доступ к ячейкам страницы. Cells обращается к конкретно-указанной ячейки через заданные координаты (строка, столбец), а Range может обращаться как конкретной ячейки, так и диапазону, причем диапазон может быть не смежным

Sub Test()
Dim Book As Workbook
Dim List As Worksheet

Set Book = Workbooks(«Книга1.xlsm»)

Set List = Book.Worksheets(1)
List.Cells(1, 1) = «Тест»

Set List = Book.Sheets(«Лист1»)
List.Range(«a5:c7, e7:g12»).Formula = «Тест2»

End Sub

Схематически структуру можно представить следующим образом:

структура рабочей книги Excel

Так же, кроме указанных, существует еще один специальный объект – Chart, из коллекции Charts. Этот объект предоставляет возможность строить диаграммы и графики. Работу с этим объектом мы рассмотрим в последующих статьях.

Вот собственно так и выглядят рабочие книги Excel «изнутри». Запомнив эту структуру и связь, Вы сможете с легкостью писать коды, обращаясь к любым книгам, страницам, ячейкам. Знание данной структуры особо будет полезно программистам которые хотят писать приложения, взаимодействующие с Excel на других языках (Delphi, C++ и т.д.) используя технологию OLE т.к. в других средах разработки при обращении к Excel отсутствуют всевозможные подсказки, с которыми очень удобно программировать в VBA, что в свою очередь создает некоторые затруднения при написании кода. Если Вас заинтересовало, каким образом происходит связь с Excel в Delphi, посетите раздел Delphi и Excel. Проанализировав программный код статьях Импорт и Экспорт в Excel из Delphi, Вы увидите что работа с объектами книги Excel очень похожа на команды VBA.