Понятие об объектной модели 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 подчинено множе­ство объектов, представляющих составные части диаграммы, такие как оси и ле­генда.

Объекты и коллекции объектов Excel. Свойства и методы объектов

Коллекция Workbooks и объектWorkbook, их свойства и методы

Следующий по иерархии после Application объект в объектной модели Excel — это объектWorkbook, который представляет собой книгу Excel. Можно сказать, что объектWorkbook занимает в Excel примерно то же место, что и объектDocument в Word — он необходим для получения ссылки на нужную нам книгу в наборе открытых книг Excel, для настройки общих свойств и выполнения общих действий со всеми листами книги. Получить этот объект можно очень просто:

первый способ — воспользоваться коллекцией Workbooks, которая доступна через свойствоWorkbooks объектаApplication. Впрочем, применять это свойство совершенно не обязательно — коллекцияWorkbooks в Excel и так постоянно доступна. Найти нужную книгу в этой коллекции можно по ее имени или номеру в коллекции, например:

Debug.Print Workbooks("Смета.xls").FullName

второй способ — использовать свойство Application.ActiveWorkbook. При помощи этого свойства мы обращаемся к активной в настоящей момент книге:

Debug.Print ActiveWorkbook.Name

третий способ — использовать свойство Application.ThisWorkbook. При этом мы обращаемся к книге, которой принадлежит данный программный модуль:

Debug.Print ThisWorkbook.Name

На практике чаще всего нам нужно либо создать в Excel новую книгу, либо открыть существующую книгу (или другой файл в формате, который понимает Excel, например, DBF). Для этой цели используются методы Add() иOpen() соответственно. Например, создать новую книгу в Excel можно так:

Программирование в Excel 251

Dim oWbk As Workbook

Set oWbk = Workbooks.Add()

Единственный необязательный параметр, который принимает этот метод, — имя шаблона, на основе которого создается новая рабочая книга.

Открытие существующей книги выглядит так:

Dim oWbk As Workbook

Set oWbk = WorkBooks.Open("C:\mybook1.xls")

Кроместандартных, в коллекции Workbooks предусмотрено также три специальных метода.

OpenDatabase() — открывает базу данных, выполняет запрос к ней (или напрямую открывает таблицу или представление), а результаты запроса помещает как импортированные внешние данные в новую автоматически созданную рабочую книгу Excel;

OpenText() — почти то же самое, но в качестве источника здесь выступает текстовый файл. Дополнительные параметры позволяют определить его формат.

OpenXML() — в качестве источника данных будет выступать файл в форма-

те XML.

Как и метод InsertDatabase() в Word, эти методы следует использовать только в самых простых случаях. Рекомендуется по возможности применять более мощные и стандартные средства объектной модели ADO.

Теперь о самых важных свойствах объекта Workbook — самой рабочей книги.

Name,CodeName,FullName — разные имена этой книги. Самое простое имя —Name, которое совпадает с именем файла книги.FullName — это имя файла книги вместе с полным путем к нему в операционной системе.CodeName — как эта книга называется в коде.CodeName можно посмотреть в окнеProject Explorer или, если открыть свойства книги в окнеProperties, кодовое имя книги будет представлено в строке(Name).Все три свойства доступны только для чтения, менять их можно другими способами (например, сохраняя файл под другим именем или изменив свойство в окне

Properties).

Определенное отношение к именам имеет также свойство Path, которое возвращает полный путь в файловой системе к книге Excel.

Charts, Sheets, ActiveChart, ActiveSheet, CustomViews, BuiltinDocumentPro-

perties и CustomDocumentProperties, Windows, WebOptions— возвращают одноименные коллекции соответствующих объектов. Некоторые из них будут рассматриваться в следующих разделах.

252 Глава 11

ConflictResolution — определяет, как будут разрешаться конфликты изменения данных, если книга открыта сразу несколькими пользователями(shared workbook). Есть возможность сделать так, чтобы локальный пользователь автоматически выигрывал, автоматически проигрывал или возникало диалоговое окно с возможностью разобраться в конфликте вручную. Существует большое количество свойств, которые позволяют настроить параметры совместной работы с книгой, но по причине того, что такая работа не рекомендуется (данные для совместного доступа необходимо переносить в базу данных), рассматриваться они здесь не будут, за исключением:

•запрещать или разрешать общий доступ к рабочей книге можно при помощи методов SaveAs()или ExclusiveAccess();

•по умолчанию возможность совместного редактирования для книги отключена (проверить можно при помощи свойства MultiUserEditing);

•получить список всех пользователей (а также информацию, когда они открыли файл и в каком режиме) можно при помощи свойства

UserStatus.

FileFormat — возвращает формат книги (доступен напрямую только для чтения, можно изменять при сохранении книги). Форматов очень много:

разные версии Excel, DBF, Lotus 1-2-3,форматы TXT, CSV, XML — всего несколько десятков.

Names — возвращает коллекцию всех именованных диапазонов в данной рабочей книге. Получить информацию о таких диапазонах можно, например, так:

For Each Item In ThisWorkbook.Names

Debug.Print Item.Name

Next

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

Методов у объекта Workbook также очень много, однако самые часто исполь-

зуемыеизних — этоActivate(), Close(), Save(), SaveAs(), PrintOut(),

Protect() иUnprotect(), которые очевидны и действуют аналогично одноименным методам объектаDocument в Word.


Дата добавления: 2018-02-28; просмотров: 423; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!