Объект Workbook представляет файл рабочей книги Excel. Он расположен на следующем уровне иерархии. С точки зрения разработчика он является контейнером, содержащим любое приложение VBA, созданное в среде Excel. Приложение содержится в отдельной рабочей книге, но может работать с несколькими рабочими книгами.
Любая установка свойства или вызов метода для объекта Workbook действуют на все приложение.
Рабочая книга может храниться в двух формах: в формате XLS (стандартная рабочая книга) и XLA (файл программы-надстройки). При создании файла XLA можно быть уверенным, что приложение является полностью откомпилированным. Кроме того, создание такого файла позволяет спрятать текст программы от ее пользователя.
В Excel можно работать с несколькими рабочими книгами, т.е. рабочие книги образуют семейство Workbooks. Чаще всего используют свойствоCount (число объектов Workbook в семействе, доступно только для чтения), методыAdd (создание нового объекта семейства), Open (открытие существующей рабочей книги) и Close (закрытие рабочей книги).
Наиболее часто используемыми свойствами объекта Workbook являются следующие свойства:
– ActiveSheet – ссылка на активный лист заданной рабочей книги;
– Author – имя автора рабочей книги (может использоваться в программе установки или регистрации);
– HasRoutingSlip – управляет включением в рабочую книгу маршрутов рассылки по электронной почте (тип Boolean);
– Name – имя рабочей книги (тип String; свойство только для чтения, т.к. для изменения имени нужно сохранить файл с помощью метода SaveAs)
– Path – путь к файлу рабочей книги (тип String; только чтение);
– Saved– если имеет значение True, то со времени последнего сохранения книги в ней не было сделано никаких изменений (тип Boolean; доступно для чтения и записи).
Основные методы объекта Workbook:
– Activate – активизирует первое окно, связанное с рабочей книгой и делает книгу активной;
– Close – закрывает рабочую книгу (с помощью аргументов можно указать, сохранять ли изменения перед закрытием и, если изменения сохраняются, имя файла, в котором сохраняется рабочая книга, а также определить необходимость рассылки книги по электронной почте, если для нее задан маршрут рассылки);
– Protect – защищает рабочую книгу, т.е. блокирует возможность внесения изменений в нее (в качестве аргументов можно передать пароль и «режим» защиты: подлежит ли защите структура рабочих листов и окон);
– Route – пересылка рабочей книги другому пользователю, используя текущий маршрут рассылки;
– Save – сохраняет рабочую книгу на старом месте под тем же именем;
– SaveAs – сохраняет рабочую книгу на новом месте и/или под новым именем;
– SaveCopyAs – сохраняет рабочую книгу в новом файле, оставляя существующую копию в памяти с прежним именем.
Возможна обработка событий, возникающих при работе с рабочими книгами, при изменении объекта Workbook или при редактировании его рабочих листов. Для описания процедур обработки этих событий не требуется создание модуля класса. Чтобы вывести список событий рабочей книги и просмотреть или отредактировать процедуры их обработки, можно свернуть окно рабочей книги, щелкнуть правой кнопкой по заголовку свернутого окна и выбрать в контекстном меню команду Исходный текст (будет запущен редактор VBA). В окне редактора имя интересующего события можно выбрать из списка процедур объекта Workbook окна программы редактора VBA.
Чаще всего в приложениях обрабатываются следующие события:
– BeforeClose – возникает при закрытии рабочей книги, перед выводом запроса на сохранение изменений;
– BeforePrint – возникает непосредственно перед печатью рабочей книги или ее части;
– BeforeSave – возникает непосредственно перед сохранением рабочей книги;
– Deactivate – возникает, когда открытая рабочая книга теряет фокус;
– NewSheet – возникает при добавлении нового рабочего листа;
– Open – открытие рабочей книги;
– SheetActivate – возникает при активизации любого рабочего листа книги;
– SheetBeforeDoubleClick – возникает при двойном щелчке по любому рабочему листу книги, до выполнения стандартной операции, которая производится по умолчанию при двойном щелчке;
– SheetBeforeRightClick – возникает при щелчке правой кнопкой по любому рабочему листу книги, до выполнения стандартной операции, которая производится по умолчанию при нажатии правой кнопки мыши;
– SheetCalculate – возникает после пересчета значений на любом рабочем листе книги или после вывода измененных данных на диаграмме;
– SheetChange – возникает после изменения пользователем или ссылкой содержимого ячейки на любом рабочем листе;
– SheetDeactivate – возникает, когда активный рабочий лист теряет фокус;
– SheetSelectionChange – возникает при изменении выделенного диапазона ячеек.
– Информация в рабочей книге располагается на листах.