Функция InputBox
расмотрена выше. Метод InputBox
хотя и кажется похожим, на самом
деле имеет большие отличие.
Функция InputBox имеет
необязательный параметр type, который
позволяет задать тип введенных
пользователем данных. Метод
имеет следующий синтаксис :
Application. InputBox
(prompt, title, default, left, top,_ helpFile,helpContextID,
type)
Параметр prompt
- обязательный аргумент,
определяющий сообщение, которое
требуется отобразить в окне
ввода. Параметр title - дополнительный
аргумент, который задает
заголовок окна. По умолчанию
выводится заголовок "Ввод"
(Input). Другим необязательным
параметром является аргумент default. Он
определяет значение по
умолчанию, которое нужно вывести
в окне. Параметры left и top - дополнительные
параметры, которые определяют
положение окна ввода по
горизонтали и по вертикали
относительно левого верхнего
угла экрана. Параметры helpFile и helpContextID -
имена файла справки и
контекстного идентификатора в
этом файле. Аргумент type определяет тип
данных, возвращаемый методом.
Если аргумент
type не задан, то возвращается
текст. В качестве значения
данного аргумента можно
использовать значения,
перечисленные в табл. 10.1.
Значение |
Тип |
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)
' Обратите
внимание на использование
значения 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), "$N,NO.OO")
End If
End Sub
Предупреждение : при
проверке нажатия кнопки Отмена
следует сравнить возвращаемый
методом InputBox результат
со значением False, а не со строкой
"False".