Объект 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», эти методы позволяют задать реакцию приложения на определенные события:
5. OnKey – задает процедуру, которая должна быть выполнена при нажатии определенной клавиши или комбинации клавиш (коды клавиш и имя процедуры передаются при вызове метода как строковые аргументы);
6. OnRepeat – задает процедуру, которая должна быть вызвана при выполнении команды Повторить действие из меню Правка (полное название команды и имя процедуры передаются при вызове метода как строковые аргументы);
7. OnUndo – задает процедуру, которая должна быть вызвана при выполнении команды Отменить действие из меню Правка (полное название команды и имя процедуры передаются при вызове метода как строковые аргументы);
8. 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.
Общий синтаксис заголовка процедуры обработки события можно представить в следующем виде:
Параметры, передаваемые процедурам обработки событий, позволяют уточнить условия возникновения и обработки событий (например, могут задать ссылку на рабочую книгу, с которой связано событие).
Например, для обработки событий создаем модуль класса с именем «EventClassModule». В этом модуле класса можно сделать следующие описания: