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

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

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

Application.Calculate

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

Application.Goto Reference, Scroll

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

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

Метод 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 не задан, то возвращается текст. В качестве значения данного apгумента можно использовать значения, перечисленные в таблице:

Значение Тип
  Формула
  Номер
  Текст (строка)
  Логическое значение (True или False)
  Ссылка на ячейки, например, на объект Range
  Значение ошибки, например, #Н/А
  Массив

Значения параметра 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)'Обратите внимание на использование значения False. If hourly_wage = False ThenMsgBox "Операция отменена."EndEnd Ifnum_of_hours = Application.InputBox("Введите количество_ отработанных часов:", _ "Отработанные часы", 40, 1)If num_of_hours = False ThenMsgBox "Операция отменена."End subElseMsgBox "К оплате " & Format((num_of_hours *_ hourly_wage), "$##,##0.00")End IfEnd SubПредупреждение

При проверке нажатия кнопки Отмена следует сравнить возвращаемый методом InputBox результат со значением False, а не со строкой "False".

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

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

Application.OnKey Key, Procedure

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

Код клавиш для метода OnKey.

Клавиша Код
<Backspace> {BACKSPACE} или {BS}
<Break> {BREAK}
<Caps Lock> {CAPSLOCK}
<Clear> {CLEAR}
<Delete> {DELETE} или {DEL}
<End> {END}
<Enter> (цифровая клавиатура) {ENTER}
<Enter> ~
<Escape> {ESCAPE} или {ESC}
<F1>-<F15> {F1}-{F15}
<Home> {HOME}
<lnsert> {INSERT}
< <-> {LEFT}
<Num Lock> {NUMLOCK}
<Page Down> {PGDN}
<Page Up> {PGUP}
< -> > {RIGHT}
<Scroll Lock> {SCROLLLOCK}
<Tab> {TAB}

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


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



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