Давайте рассмотрим общую иерархию или структуру рабочей книги Excel с точки зрения VBA!? Это в дальнейшем при разработке Ваших приложений поможет понять всю зависимость объектов таких как рабочие листы, рабочие книги…
Итак, структура:
Верх иерархии это конечно само приложение Excel т.е. Application.
Следующей идет рабочая книга Workbook. Объект Workbook нужен для того чтобы получить ссылку на нужную нам книгу в наборе открытых книг Excel, либо для выполнения общих действий со всеми листами книги. Получить доступ к этому объекту можно через свойство Workbooks объекта Application (в случае обращения через среду VBA — Application не указывается), выбрав нужную книгу коллекции Workbooks по имени или номеру. Например:
Sub Test() |
После Workbook следует страница Worksheet. Объекты Worksheet в книге Excel объединены в коллекцию Worksheets или Sheets, из которой можно выбрать нужный лист также по номеру или индексу
Sub Test() Set Book = Workbooks(«Книга1.xlsm») Set List = Book.Worksheets(1) Set List = Book.Sheets(«Лист1») End Sub |
И в конце всей иерархии объект Range или Cells т.е. ячейка (и). Данные объекты предоставляют доступ к ячейкам страницы. Cells обращается к конкретно-указанной ячейки через заданные координаты (строка, столбец), а Range может обращаться как конкретной ячейки, так и диапазону, причем диапазон может быть не смежным
Sub Test() Set Book = Workbooks(«Книга1.xlsm») Set List = Book.Worksheets(1) Set List = Book.Sheets(«Лист1») End Sub |
Схематически структуру можно представить следующим образом:
Так же, кроме указанных, существует еще один специальный объект – Chart, из коллекции Charts. Этот объект предоставляет возможность строить диаграммы и графики. Работу с этим объектом мы рассмотрим в последующих статьях.
Вот собственно так и выглядят рабочие книги Excel «изнутри». Запомнив эту структуру и связь, Вы сможете с легкостью писать коды, обращаясь к любым книгам, страницам, ячейкам. Знание данной структуры особо будет полезно программистам которые хотят писать приложения, взаимодействующие с Excel на других языках (Delphi, C++ и т.д.) используя технологию OLE т.к. в других средах разработки при обращении к Excel отсутствуют всевозможные подсказки, с которыми очень удобно программировать в VBA, что в свою очередь создает некоторые затруднения при написании кода. Если Вас заинтересовало, каким образом происходит связь с Excel в Delphi, посетите раздел Delphi и Excel. Проанализировав программный код статьях Импорт и Экспорт в Excel из Delphi, Вы увидите что работа с объектами книги Excel очень похожа на команды VBA.