Модель объектов Excel

Из всех моделей объектов Microsoft Office модель объектов Excel является наиболее зрелой. Excel 5.0 был первым офисным приложением, в котором VBA использовался как язык разработки приложений. Модель объектов Excel совершенствуется в течение нескольких лет, а теперь она стала более удобной и полной. По сравнению с Excel 5.0 в Excel 97 добавлено несколько новых объектов.

Если вы работали с предыдущими версиями Excel, то некоторые объекты будут вам знакомы. Однако некоторые элементы, например, объекты WorksheetFunction, VBE и Assistant являются новыми.

В модели объектов Excel имеются более 100 объектов и семейств. Не следует пугаться этого. Вероятно окажется, что приблизительно 10 процентов объектов и семейств достаточно, чтобы выполнить 90 процентов всех возможных действий. Примерами наиболее часто используемых объектов и семейств объекты Application, Workbook и Workbooks, Worksheet Worksheets, а также объект Range. С помощью только этих объектов и семейств можно произвести огромное множество операций.

Использование объекта Application

Исходным элементом любой модели объектов Office является объект Application. Он представляет все приложение в целом. С помощью свойств и методов элемента Application, можно установить параметры работы программы, такие как задаваемые с помощью команды Сервис\Параметры (Tools\Options). В свойствах объекта Application, например, ActiveWorkbook, ActiveSheet и ActiveCell хранится информация об объекте, с которым в текущий момент работает пользователь. Кроме того, данный объект имеет полезные методы, например, метод Application.InputBox, который удобнее, чем стандартная функция VBA InputBox().

Использование свойств объекта Application

Как уже отмечалось выше, свойства объекта Application позволяют задавать общие параметры работы приложения Excel. Рассмотрим некоторые свойства элемента Application.

Свойства ActiveWorkbook, ActiveSheet и ActiveCell. В данных свойствах хранится информация об активном объекте. Активный объект - это объект, с которым в текущий момент взаимодействует пользователь. Значение свойства ActiveCell хранится в свойстве ActiveSheet, а величина свойства ActiveSheet - в свойстве ActiveWorkbook. Приведем пример использования свойства ActiveCell:

With ActiveCell.FontBold = True.Value = "Отчет о продажах"End With

Свойство Caption. В свойстве Caption объекта Application хранится имя, которое появляется в заголовке окна приложения Excel. Данное свойство доступно как для чтения, так и для установки. Если требуется скрыть, что приложение в действительности работает в Excel, то можно вместо значения "Microsoft Excel" указать другую строку:

Application.Caption = "Корпорация АБВ. Продажи"

Чтобы вернуть заголовок "Microsoft Excel", укажите ключевое слово Empty:

Application.Caption = Empty

Свойство Cursor. Свойство Cursor используется для задания внешнего вида указателя мыши во время выполнения макроса. При задании значения данного свойства можно указать одну из четырех констант Excel:

Константа XlDefault определяет использование указателя, заданного по умолчанию в приложении Excel. *

Константа xlWait определяет использование указателя мыши в виде песочных часов. Рекомендуется присвоить свойству Cursor это значение в начале обработки данных (например, извлечения информации), чтобы сообщить пользователю, что ему требуется подождать завершения операции.

Константа XlNorthwestArrow используется реже. Она определяет вывод указателя мыши в виде стрелки основного режима.

Константа xlBeam используется также не очень часто. Она определяет вывод указателя мыши в виде стрелки выделения текста.

Необходимо отметить, что после изменения свойства Cursor необходимо восстановить исходный вид мыши, присвоив свойству Cursor значение xlDefault, т. к. это не производится автоматически по завершении работы

Свойство DisplayAlerts. Если требуется отключить вывод встроенных подсказок и предупреждений при выполнении макроса, необходимо присвоить значение False свойству DisplayAlerts. В этом случае Excel производит стандартные действия, выбирая применяемый по умолчанию ответ на сообщения. Исходное значение свойства DisplayAlerts равно True.

Если макрос изменяет значение свойства DisplayAlerts, то перед окончанием его работы требуется присвоить данному свойству значение Тrue. В предыдущих версиях Excel это производилось автоматически, а в нас щей- необходимо делать вручную. Таким образом, чтобы использовать макросы предыдущих версий Excel в Excel 97, требуется во избежание нежелательного поведения приложения добавить в программу следующую строку кода:

Application.DisplayAlerts = True

Свойства DisplayFormulaBar, DisplayScrollBars и DisplayStatus:

Чтобы скрыть строку формулы, полосы прокрутки или строку состояния, требуется присвоить значение False свойству DisplayFormulaBar, DisplayScrollBars или DisplayStatusBar соответственно. И наоборот, для вывода требуемого элемента интерфейса, необходимо присвоить True соответствующему свойству. Значение по умолчанию для данных свойств равно True.

Свойство ЕпаblеСаnсelКеу. Обычно прерывание выполнения макроса осуществляется с помощью комбинации клавиш +. По умолчанию свойство EnableCancelKey равно значению xlInterrupt, которое допускает остановку процедуры пользователем для ее отладки или завершения. Если же требуется запретить прерывание выполнения, присвойте значение xlDisabled или xlErrorHandler свойству EnableCancelKey. Hеобходимо отметить, что константу xlDisabled следует использовать с особой осторожностью. Если свойство EnableCancelKey имеет данное значение, то выход из бесконечного цикла или прерывание макроса невозможно. Таким образом, перед установкой свойства требуется убедиться, что процедура полностью и тщательно отлажена.

Вместо константы xlDisable можно указать константу xlErrorHandler. Если свойство EnableCancelKey равно данному значению, то в выполняемой процедуре осуществляется переход к процедуре обработки ошибки. При использовании константы xlErrorHandler необходимо включить в макрос подпрограмму обработки ошибки, указав инструкцию On Error Goto. Номер ошибки, возникающей в результате нажатия комбинации клавиш <Ctrl>+<Break>, равен 18.

По завершении работы макроса свойству EnableCancelKey автоматически присваивается значение xlInterrupt.

Свойство ScreenUpdating. Одним из способов ускорить выполнение программы заключается в том, чтобы присвоить значение False свойству ScreenUpdating. Обычно этот метод применяется для макросов, которые отображают большое количество текста на рабочий лист. Если свойство ScreenUpdating равно False, то при выполнении макроса отключается на экран. В конце процедуры требуется присвоить значение True свойству ScreenUpdating.

В предыдущих версиях Excel свойству ScreenUpdating автоматически присваивалось значение True, а в настоящей версии это необходимо делать вручную. Таким образом, чтобы использовать макросы предыдущих версий в Excel 97, требуется добавить в конец макроса инструкцию, которая восстанавливает значение свойства ScreenUpdating.

Свойство StatusBar. Свойство statusBar позволяет задать текст строки состояния. Рекомендуется применять данное свойство совместно со свойством Cursor:

'Присвоить значение True свойству DisplayStatusBar, чтобы вывести строку состояния.

Application. DisplayStatusBar = True'Установка текста строки состояния.Application.StatusBar = "Обработка, пожалуйста, подождите... "'Замена обычного указателя мыши на песочные часы.Application.Cursor = xlWait'Вызов процедурыGetSalesData'Восстановление указателя мыши и строки состоянияApplication.Cursor = xlDefaultApplication.StatusBar = False

Свойтсво ThisWorkBook. В этом свойстве хранится ссылка на объект Workbook, являющийся рабочей книгой, в которой содержится выполняемый макрос. Значение этого свойства и свойства ActiveWorkBook не обязательно совпадают. Если в Excel открыто несколько рабочих книг, то возможно, что в свойстве ActiveWorkBook содерится ссылка на одну рабочую книгу, а в свойстве ThisWorkBook - на другую, которая и содержит выполняющийся макрос.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: