Содержание 1 введение 6

Вид материалаРеферат
11.4 Использование методов объекта Application
Метод Calculate.
Application.Goto Reference, Scroll
Scroll также не обязателен. Если он равен True
Метод InputBox
Application.InputBox(prompt, title, default, left, top, helpFile,_ helpContextID, type)
True или False
ОК метод InputBox возвращает значение, введенное окно, при нажатии кнопки Отмена
Sub Input_example()
MsgBox "Операция отменена."
If num_of_hours = False Then
Application.OnKey Key, Procedure
Application.OnKey "{RIGHT}", "GetSalesData"
Application.OnRepeat Text, Procedure
Application.OnRepeat "Повторить чтение данных по сбыту", _
Application.OnTime(EarliestTime, Procedure LatestTime, Schedule)
OnUndo позволяет установить текст команды Правка\Отменить (Edit\Undo
Text устанавливает текст команды Правка\Отменить. Аргумент Procedure
Quit объекта Application
Подобный материал:
1   ...   14   15   16   17   18   19   20   21   ...   25

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



В большинстве программ VBA, в которых используется объект Application, обычно изменяются свойства этого объекта. Однако также имеются несколько методов объекта Application, требующие детального рассмотрения.

Метод Calculate. Если в Excel установлен режим вычислений вручную, можно использовать метод Calculate объекта Application для принудительного выполнения вычислений во всех открытых рабочих книгах. Метод имеет следующий синтаксис:

Application.Calculate

Метод Goto. Метод Goto позволяет выбрать требуемый диапазон или процедуру Visual Basic в любой рабочей книге. Отличие данного метода от рассматриваемого ниже метода Select заключается в том, что метод Goto активизирует связанную с диапазоном или процедурой рабочую книгу, если она не активна. Метод имеет следующий синтаксис:

Application.Goto Reference, Scroll

Параметр Reference необязательный аргумент, который используется для задания требуемого диапазона в формате R1C1 или для задания имени процедуры Visual Basic. Если данный параметр опущен, то подставляется последний диапазон, который указывался в методе Goto.

Параметр Scroll также не обязателен. Если он равен True, то после выполнения метода левый верхний угол заданного в методе диапазона выводится в левом верхнем углу окна.

Метод InputBox. Метод InputBox кажется похожим на функцию InputBox(), но на самом деле имеет большие отличия. Функция InputBox() возвращает только строку. Метод InputBox имеет необязательный параметр type, который позволяет задать тип введенных пользователем данных. Метод имеет следующий синтаксис:

Application.InputBox(prompt, title, default, left, top, helpFile,_ helpContextID, type)

Параметр prompt – обязательный аргумент, определяющий сообщение, которое требуется отобразить в окне ввода. Параметр title – дополнительный аргумент, который задает заголовок окна. По умолчанию выводится заголовок «Ввод» (Input). Другим необязательным параметром является аргумент default. Он определяет значение по умолчанию, которое нужно вывести в окне. Параметры left и top – дополнительные параметры, которые определяют положение окна ввода по горизонтали и по вертикали относительно левого верхнего угла экрана. Параметры helpFile и helpContextID – имена файла справки и контекстного идентификатора в этом файле. Аргумент type определяет тип данных, возвращаемый методом. Если аргумент type не задан, то возвращается текст. В качестве значения данного аргумента можно использовать значения, перечисленные в табл. 11.1.


Таблица 11.1  Значения параметра Type


Значение

Тип

0

Формула

1

Номер

2

Текст (строка)

4

Логическое значение ( True или False)

8

Ссылка на ячейки, например, на объект Range

16

Значение ошибки, например, #Н/А

64

Массив

Значения параметра type не являются последовательными, поскольку в программе можно использовать их комбинацию. Например, если необходимо задать ввод либо текста, либо чисел, следует присвоить данному параметру значение 1 + 2.

При нажатии кнопки ОК метод InputBox возвращает значение, введенное окно, при нажатии кнопки Отмена (Cancel) – значение False. Приведем пример использования метода InputBox, в котором показано, как данный макрос реагирует на ввод текста или на нажатие кнопки Отмена:


Sub Input_example()

Dim hourly_wage As Currency

Dim num_of_hours As Single

Dim error_text As String


'Параметр Type получает значение 1 (число).

hourly_wage = Application. InputBox.("Введите ставку _

почасовой оплаты:", "Почасовая оплата", 3.75, Туре=1)


239




'Обратите внимание на использование значения False.

If hourly_wage = False Then

MsgBox "Операция отменена."

End

End If

num_of_hours = Application.InputBox("Введите количество _

отработанных часов:", "Отработанные часы", 40, Туре=1)

If num_of_hours = False Then

MsgBox "Операция отменена."

End

Else

MsgBox "К оплате " & Format((num_of_hours * _

hourly_wage), "$##,##0.00")

End If

End Sub

Методы OnKey, OnRepeat, OnTime и OnUndo. Они обычно используются в процедуре Auto_Open, которая автоматически выполняется при открытии рабочей книги.

Метод OnKey выполняет заданную процедуру при нажатии определенной клавиши или комбинации клавиш. Метод имеет следующий синтаксис:

Application.OnKey Key, Procedure

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


Таблица 11.2  Код клавиш для метода OnKey







Клавиша

Код



{BACKSPACE} или {BS}



{BREAK}



{CAPSLOCK}



{CLEAR}



{DELETE} или {DEL}

<
Продолжение табл. 11.2
>

{DOWN}



{END}

(цифровая клавиатура)

{ENTER}



{ESCAPE} или {ESC}











{HOME}



{INSERT}

<>

{LEFT}



{NUMLOCK}




{PGDN}




{PGUP}

<>

{RIGHT}



{SCROLLLOCK}



{TAB}

<>

{UP}


Если требуется задать сочетание одновременно нажимаемых клавиш, используйте табл. 11.3.


Таблица 11.3 ­ Коды специальных клавиш для метода OnKey


Специальная клавиша

Код

Alt или Option



Shift

+

Ctrl



Command

*


Параметр Procedure – необязательный строковый аргумент, который определяет имя процедуры, запускаемой при нажатии клавиши или комбинации клавиш. Если требуется отключить исполнение макроса при нажатии комбинации, присвойте данному параметру пустую строку (""). Если требуется восстановить исходную функцию сочетания клавиш, выполните метод OnKey, не указывая параметр Procedure. Приведем пример использования метода ОnКеу:

'Назначение комбинации клавиш +<>

'процедуре GetSalesData.


Application.OnKey "{RIGHT}", "GetSalesData"


'Отмена назначения комбинации клавиш +<>

Application.OnKey "{RIGHT}", ""


'Восстановление функции комбинации клавиш +<>

Application.OnKey "{RIGHT}"


Метод OnRepeat определяет процедуру, которая выполняется при выборе команды Правка\Повторить (Edit\Repeat). Метод имеет следующий синтаксис:

Application.OnRepeat Text, Procedure


Параметр Text – обязательный аргумент, задающий текст команды Правка\Повторить. Параметр Procedure – обязательный аргумент, содержащий имя процедуры, которая выполняется при выборе команды Правка\Повторить.

Приведем пример использования данного метода. Следующая инструкция устанавливает текст команды Правка\Повторить равным "Повторить чтение данных по сбыту" и связывает процедуру GetSalesData с данной командой:

Application.OnRepeat "Повторить чтение данных по сбыту", _

"SaleData.xls!GetSalesData"

Метод OnTime позволяет назначить выполнение процедуры на заданное время. Метод имеет следующий синтаксис:

Application.OnTime(EarliestTime, Procedure LatestTime, Schedule)

Обязательный параметр EarliestTime – момент запуска процедуры. Параметр Procedure также обязателен. Он содержит имя выполняемой процедуры. Следует отметить, что для ввода значения параметра EarliestTime можно использовать функцию TimeValue ().

Если на момент, заданный параметром EarliestTime, Excel не может запустить указанную процедуру из-за того, что выполняет другую операцию, то дополнительный параметр LatestTime определяет последний момент запуска этой процедуры. Если по прошествии указанного времени Excel так и не освободился, то процедура не исполняется.

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


'Выполнение процедуры GetSalesData по прошествии 1 минуты

'с текущего момента.

Application.OnTime Now + TimeValue ("00:01:00"), "GetSalesData"


'Выполнение процедуры UpdateSalesData в 14:00.

Application.OnTime TimeValue("14:00:00 "), "UpdateSalesData"


Метод OnUndo позволяет установить текст команды Правка\Отменить (Edit\Undo) и связать с этой командой процедуру. Синтаксис метода напоминает синтаксис метода OnRepeat:

Application.OnUndo(Text, Procedure)


Параметр Text устанавливает текст команды Правка\Отменить. Аргумент Procedure определяет процедуру, связанную с этой командой.

Метод Quit. Чтобы выйти из Excel, не запуская макросы Auto_Close, используется метод Quit объекта Application. При выходе выводится запрос на запись несохраненных открытых рабочих книг. Метод имеет следующий синтаксис:

Application.Quit