Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть 2. Основы офисного программирования.doc
Скачиваний:
8
Добавлен:
01.05.2025
Размер:
4.04 Mб
Скачать

8.2.Обзор основных объектов Excel

Ниже рассматриваются только основные, наиболее часто используемые объекты Excel. Более полную информацию можно получить в справочной системе. Для поиска наименований нужных объектов, их свойств и методов можно воспользоваться также макрогенератором, выполнив нужные действия «вручную» и записав их последовательность в макрос.

8.2.1. Объект Application

Объект Application является главным в иерархии. Его можно представить себе как среду, в которой выполняется приложение.

Чаще всего используются следующие свойства объекта:

  • ActiveWorkbook, ActiveSheet, ActiveCell – ссылки на активные объекты приложения;

  • Caption – надпись, отображаемая в заголовке окна Excel (тип – String; доступно для чтения и записи);

  • Cursor – установка указателя мыши (xlNormal, xlDefault – обычный указатель (по умолчанию), установленный в Панели управления Windows, xlWait – песочные часы, xlNorthWestArrow – стрелка вверх и влево, xlBeam – I-курсор, как при редактировании текста);

  • DisplayAlerts – управляет выводом на экран встроенных предупреждений Excel (тип – Boolean; доступно для чтения и записи);

  • DisplayStatusBar – управляет отображением строки состояния (тип – Boolean; доступно для чтения и записи);

  • DisplayFormulaBar – управляет отображением строки формул (тип – Boolean; доступно для чтения и записи);

  • DisplayScrollBars – управляет отображением полос прокрутки (тип – Boolean; доступно для чтения и записи);

  • EnableCancelKey – обычно прерывание выполнения макроса в приложении осуществляется с помощью комбинации клавиш Ctrl+Break; в том случае, когда требуется запретить прерывание выполнения макроса, данному свойству нужно присвоить значение константы xlDisabled (данная установка позволяет выполнить макрос как единую транзакцию, но этим значением следует пользоваться очень осторожно – нужно убедиться, что макрос не может зациклиться), а в том случае, когда после прерывания макроса следует передать управление на процедуру обработки ошибок, нужно установить для данного свойства значение xlErrorHandler (в этом случае в макрос должна быть включена последовательность операторов для обработки ошибок, которая указывается с помощью инструкции On Error GoTo, а вырабатываемый в данном случае код ошибки равен 18);

  • OperatingSystem – строка текста с информацией об операционной системе (только для чтения);

  • Path – путь к каталогу (папке), в котором установлен Excel (тип – String; только чтение);

  • ScreenUpdating – управляет обновлением экрана при выполнении подпрограммы (тип Boolean; доступно для чтения и записи; устанавливается только на время выполнения процедуры, в которой сделана установка);

  • StatusBar – текст строки состояния;

  • ThisWorkBook – ссылка на объект WorkBook – рабочую книгу, в которой содержится выполняемый макрос;

  • UserName – имя текущего пользователя (по умолчанию равно значению поля «Имя пользователя» на вкладке «Общие» диалогового окна, открываемого командой Параметры из меню Сервис);

  • Version – номер версии Excel (только для чтения);

  • WindowState – состояние окна приложения (может принимать три значения: xlNormal – нормальное, xlMaximized – развернуто на весь экран, xlMinimized – свернуто; доступно для чтения и записи);

  • Основные методы данного объекта:

  • Calculate – вызывает перевычисление всех формул на всех рабочих листах во всех открытых рабочих книгах;

  • GoTo – выбор требуемого диапазона или процедуры VBA в любой рабочей книге;

  • InputBox – используется для получения информации от пользователя;

  • OnKey, OnRepeat, OnTime, OnUndo – методы, вызываемые обычно в процедуре Auto_Open модуля «AutoExec», эти методы позволяют задать реакцию приложения на определенные события:

    1. OnKey – задает процедуру, которая должна быть выполнена при нажатии определенной клавиши или комбинации клавиш (коды клавиш и имя процедуры передаются при вызове метода как строковые аргументы);

    2. OnRepeat – задает процедуру, которая должна быть вызвана при выполнении команды Повторить действие из меню Правка (полное название команды и имя процедуры передаются при вызове метода как строковые аргументы);

    3. OnUndo – задает процедуру, которая должна быть вызвана при выполнении команды Отменить действие из меню Правка (полное название команды и имя процедуры передаются при вызове метода как строковые аргументы);

    4. OnTime – позволяет назначить выполнение процедуры на заданное время;

  • Quit – закрывает Excel;

  • Run – запускает макрос или подпрограмму.

  • В программах на VBA можно обрабатывать события объекта Application:

  • NewWorkbook – создание новой рабочей книги;

  • WorkbookActivate – активизация любой рабочей книги;

  • WorkbookAddinInstall – установка рабочей книги в качестве дополнительной надстройки;

  • WorkbookAddinUninstall – отмена установки рабочей книги в качестве дополнительной надстройки;

  • WorkbookBeforeClose – возникает непосредственно перед закрытием рабочей книги;

  • WorkbookBeforePrint – возникает непосредственно перед печатью рабочей книги;

  • WorkbookBeforeSave – возникает непосредственно перед сохранением рабочей книги;

  • WorkbookDeactivate – возникает, когда открытая рабочая книга теряет фокус;

  • WorkbookNewSheet – возникает при добавлении нового рабочего листа;

  • WorkbookOpen – открытие рабочей книги.

Чтобы обработать событие объекта Application, необходимо создать новый модуль класса и объявить в нем переменную, используя ключевое слово WithEvents:

Public WithEvents ПеременнаяПриложения As Application

Данная инструкция определяет, что описанная в ней переменная используется для обработки событий.

Затем требуется связать описанный в модуле класса объект с элементом Application. Это можно сделать в любом модуле, записав в нем следующий код:

Dim ПеременнаяСобытия As New ИмяМодуляКласса Sub InitializeAppEvents() Set ПеременнаяСобытия.ПеременнаяПриложения = Application End Sub

После выполнения данной процедуры объект, описанный в модуле класса, указывает на объект Excel Application, что позволяет использовать для него процедуры обработки событий, описанные в модуле класса, при возникновении этих событий.

Если необходимо включить или отключить обработку событий, то следует изменить в программе свойство EnableEvents объекта Application. Процедуры обработки событий доступны, если данное свойство равно True.

Общий синтаксис заголовка процедуры обработки события можно представить в следующем виде:

Private Sub ПеременнаяПриложения_Событие (СписокПараметров)

Параметры, передаваемые процедурам обработки событий, позволяют уточнить условия возникновения и обработки событий (например, могут задать ссылку на рабочую книгу, с которой связано событие).

Например, для обработки событий создаем модуль класса с именем «EventClassModule». В этом модуле класса можно сделать следующие описания:

Public WithEvents AppObj As Application

Private Sub AppObj_NewWorkbook(ByVal Wb _

As Excel.Workbook)

x = MsgBox("Создаем новую книгу " & Wb.Name, _

vbOKOnly, "Excel")

End Sub

Это означает, что для объекта-приложения, с которым будет связана переменная AppObj, определена процедура обработки события NewWorkbook, возникающего при создании новой книги. Присваиваемое книге имя выводится на экран с помощью функции MsgBox.

Если в списке объектов в окне модуля класса выбрать строку «Class», то в списке процедур можно выбрать имена процедур «Initialize» и «Terminate». Редактор VBA автоматически вставит в модуль «заготовки» для этих процедур, если они еще не были записаны. Данные процедуры используются для инициализации (например, присваивания значений общим переменным) и уничтожения экземпляра класса.

Для создания процедуры обработки события следует выбрать в списке «Объект» имя переменной, описанной в модуле с ключевым словом WithEvents, а в списке «Процедура» – нужное событие. Редактор VBA автоматически сгенерирует «заготовку» для процедуры обработки выбранного события (ее заголовок со стандартным именем и списком параметров и инструкцию, завершающую процедуру).

После создания модуля класса для обработчиков событий приложения можно в любом модуле «подключиться» к этим процедурам. Для этого нужно описать переменную

Dim EvObj As New EventClassModule

и записать код, который установит ссылку на приложение, для которого должны обрабатываться события:

Sub InitAppEvents() Set EvObj.AppObj = Application End Sub

Более полную информацию о свойствах объекта Application, методах и событиях, связанных с этим объектом можно посмотреть в справочной системе, открыв окно просмотра объектов.

Работая с приложениями Excel, в среде Excel пользователь имеет дело с рабочими книгами.