Функция MsgBox хороша, когда от пользователя надо получить простые данные - ответы типа Да-Нет или ОК-Отмена. Если необходимо ввести число или текст, то применяется функция InputBox. Эта функция отображает диалоговое окно ввода, содержащее поле ввода и поясняющий текст. Функция InputBox имеет следующий синтаксис:
Эта функция требует обязательного задания только аргумента приглашение. Так же, как и в функции MsgBox, значением аргумента приглашение служит текстовая строка, которая отображается в диалоговом окне ввода в качестве сообщения.
Аргумент заголовок используется для задания текста, который помещается в строке заголовка окна ввода. Если этот аргумент не задан, то в строке заголовка отображается Microsoft Excel.
Аргумент по_умолчанию задает значение, которое отображается по умолчанию в поле ввода, пока пользователь не введет свое значение. Если этот аргумент опустить, то поле ввода отображается пустым.
Необязательные аргументы xпоз и yпоз задают положение окна ввода на экране. Аргументы файл_справки и содержание используются в том случае, если вы создаете для своего приложения собственную систему справки.
Возвращаемым значением функции InputBox является значение, введенное пользователем в поле ввода. Для иллюстрации использования этой функции выполните следующий пример.
Вставьте новую подпрограмму в текущий модуль и назовите ее ПримерВвода.
Введите следующий код:
Dim iResult As Integer
iResult = InputBox(“Введите число:”)
MsgBox iResult
ActiveCell.Value = iResult
Этот код открывает окно ввода для ввода числа, которое затем будет отображено в окне сообщения и помещено в текущую ячейку рабочего листа.
Нажмите клавишу <F5> для выполнения процедуры. Отобразится окно ввода (рис. 5.3).
Введите число и нажмите клавишу <Enter>. Открывшееся окно сообщения покажет введенное вами число.
Щелкните на кнопке ОК. Окно сообщения закроется.
Перейдите в рабочую книгу. В активной ячейке рабочего листа вы увидите введенное число.
Если вы заглянете в справочную систему VBA, то прочитаете, что функция InputBox возвращает строковое (текстовое) значение. Это не совсем точно. В последней версии Visual Basic (и, следовательно, VBA) тип возвращаемого значения определен как Variant, т.е. тип определяется введенным значением. Иначе как бы сработала наша процедура, где переменная iResult объявлена как Integer? Если пользователь щелкнет на кнопке Отмена, то в этом случае функция InputBox возвращает строку нулевой длины (“ ”).