- •Лекция 10
- •Объектная модель Word Основы: документы и шаблоны
- •Информация о Normal.Dot
- •Краткий обзор объектной модели Word
- •Объект Application
- •Объект Document
- •Объект Selection
- •Объект Range
- •Объект Bookmark
- •Подведем промежуточный итог
- •Объект Application
- •Использование ThisApplication
- •Свойства Application
- •Методы Application
- •Объект Document
- •Наборы объекта Document
- •Ссылки на документы
- •Создание, открытие и закрытие документов
- •Сохранение документов
- •Объектная модель Excel
Объектная модель Excel
Основой объектной модели Excel является объект Worksheet, представляющий один рабочий лист в файле. Каждый объект Worksheet является частью коллекции Worksheets, которая принадлежит объекту Workbook, представляющему файл рабочей книги Excel. Так как в приложении Excel одновременно может быть открыто несколько рабочих книг, существует также и коллекция Workbooks, содержащая по одному объекту Workbook на каждый открытый файл. Как и во всех приложениях пакета Office, объект Application находится в вершине иерархии объектов и доступен в качестве неявной ссылки при работе в Excel.
Существует еще один тип листов в рабочих книгах Excel — лист диаграммы (объект Chart) — особая таблица, которая содержит только диаграмму. Коллекция Charts объекта Application реализует доступ ко всем диаграммам всех открытых файлов, а коллекция charts объекта Workbook — только к диаграммам данной рабочей книги. Диаграммы также могут быть внедрены в рабочие листы вместо того, чтобы иметь собственный лист. Такие диаграммы не являются частью коллекции charts, а вместо этого доступны в составе коллекции Chartob-jects объекта Worksheet. Коллекция Sheets осуществляет доступ ко всем рабочим листам, как к таблицам, так и к диаграммам.
Большая часть того, что вы делаете в Excel, связана с объектом Range. Хотя имя этого объекта не отличается от своего двойника в приложении Word, их составы различны. Однако его функции практически те же: обрамление части документа, с которым производится работа. Диапазоном может выступать отдельная ячейка, двумерный блок ячеек на рабочем листе или трехмерный блок ячеек, охватывающий несколько рабочих листов.
Еще одной важной составной частью объектной модели Excel является объект Chart. Существует один объект chart, содержащийся в коллекции charts для каждой диаграммы в рабочей книге. Каждому объекту Chart подчинено множество объектов, представляющих составные части диаграммы, такие как оси и легенда.
Мы будем изменять наш макрос, зайдите в пункт меню "макросы", выберите наш и скажите "изменить":
Sub Test()
Dim book As String
Dim sheet As String
Dim addr As String
addr = "C"
book = Application.ActiveWorkbook.Name
sheet = Application.ActiveSheet.Name
Workbooks(book).Activate
Worksheets(sheet).Activate
Range("A1") = book
Range("B1") = sheet
Dim xList As Integer
xList = Application.Sheets.Count
For x = 1 To xList
Dim s As String
s = addr + LTrim(Str(x))
Range(s) = x
Next x
End Sub
Программирование на VBA можно рассматривать, как управление обьектами приложения. Вот именно обьектами и управляет наше приложение. В нашем случае, если упростить иерхическую архитектуру, то это выглядит так.
Application
Workbook
........
Worksheets
......
Cell
.....
То есть главный обьект - приложение. В приложении могут быть несколько книг ( Workbook ), внутри которых находятся листы ( Worksheets ) и листы разбиты на ячейки ( Cell ). При работе активными могут быть только одна книга и один лист. Вот я своим макросом и пытаюсь это выяснить. А заодно сколько листов в текущей книге.
DIM - обьявляет переменную с типом string. Используя обьект Application, мы получаем имена текущих книг и листа. С помощью Range("...") можно выделить ячейку и поместить значения в неё или считать. Вообщем обьекты имеют огромное количество свойств. Задача программиста на VBA знать эти свойства и методы.