Встроенные окна ввода-вывода создаются системными функциями InputBoxи MsgBox. Эти функции относятся к системным функциям, т.к. их действия напрямую зависит от работы системы Windows. Таким функциям являются:
· Функция InputBox – для ввода данных пользователем через системное окно;
· Функция MsgBox – для выдачи сообщений пользователю через системное окно.
Параметры функции имеют следующий смысл: Приглашение – это любой текст который должен по замыслу программиста, находиться в Окне ввода. Его назначение – служить подсказкой пользователю, какую информацию он должен ввести в специальное поле ввода, находящееся в этом окне. Заголовок – это надпись в строке заголовка. Если параметр не указан, то в качестве заголовка используется имя приложения. По умолчанию – строка, помещаемая в текстовое поле. Если параметр не указан, то поле текста будет пустым; хпоз и упоз – необязательный элемент, задает положение окна ввода на экране. Файл справки и содержание – используется, если для приложения создается собственная система справки.
Окно ввода содержит сообщение, указывающее, какие данные должен ввести пользователь, поле текста для ввода данных и две кнопки OK и Отмена, которые используются для подтверждения или отмены ввода данных. Закончив ввод данных, пользователь должен щелкнуть на одной из кнопок. Если щелчок был сделан на кнопке OK,то значением функции является текст, находящийся в поле ввода. Если щелчок был сделан на кнопке Отмена, то значением функции является пустая строка, независимо от того, что напечатал пользователь.
В качестве примера на рис. 1 из задачи 1 приведено окно, созданное с помощью оператора:
v = InputBox("Введите искомое число", "ВВОД ДАННЫХ")
Окно сообщения создаётся функцией MsgBox, которая имеет следующий синтаксис:
Это традиционная форма синтаксиса, когда функция возвращает целочисленное значение, которое затем используется (например, присваивается переменной). Значение, возвращаемое функцией, зависит от выбора пользователем кнопки, которой закрывается это окно.
Чаще применяется другая форма синтаксиса, когда функция действует просто как оператор – выдаёт информацию в Окне сообщения. В этом случае в записи функции отсутствуют скобки (круглые):
MsgBox Текст [, Кнопки] [, Заголовок] [, файл_справки, содержание]
Текст– это строка сообщения, ради получения которого данная функция и применяется. Эта строка текста должна быть заключена в двойные кавычки. Текстможет содержать до 1024 символов! Чтобы этот текст выдавался не сплошной длинной строкой, его можно разбить на небольшие «порции», между которыми вставляются специальные «невидимые» символы – переноса и возврата к левому краю страницы.
Если не указан аргумент Кнопки, то VBA предполагает, что в диалоговом окне сообщения присутствует только кнопка OK. В табл.1 показаны возможные установки для этого аргумента. В этой таблице значения аргумента разбиты на группы.
Параметр Заголовок задает строку, которая является заголовком окна сообщения. Если параметр отсутствует, то в качестве заголовка используется имя приложения.
Таблица 1. Установки для аргументаКнопки функцииMsgBox
Группа
Константа
Значение
Описание
vbOKOnly
Отображает только кнопку OK (установка по умолчанию)
VbOKCancel
Отображает кнопки OK и Отмена
Группа 1
тип кнопок
VbAbortRetryIgnore
Отображает кнопки Стоп, Повтор и Пропустить.
VbYesNoCancel
Отображает кнопки Да, Нет и Отмена
vbYesNo
Отображает кнопки Да и Нет
VbRetryCancel
Отображает кнопки Повтор и Отмена
Группа 2
стиль пиктограммы
VbCritical
Отображает запрещающую пиктограмму
VbQuestion
Отображает предупреждающую пиктограмму
VbExclamation
Отображает предупреждающую пиктограмму
VbInformation
Отображает информационную пиктограмму
VbSystemModal
Системный режим: все приложения недоступны, пока пользователь не закроет окно сообщения
В качестве примера на рис.2 из задачи 1 приведено окно, созданное с помощью оператора:
MsgBox ("Элемент номер " & Resul & " равен числу " & _
v & " !!! "), vbInformation, "Найден ответ"
Заметим, что оперетор MsgBox записан здесь в две строки, хотя в окне кода редактора VBA он может располагаться в одну строку. В VBA символами продолжения строки служит пробел с последующим символом подчеркивания.
Таблица 2. Значения, возвращаемые функцией MsgBox
Возвращаемое значение
Кнопка
OK
Отмена
Стоп
Повтор
Пропустить
Да
Нет
Действие функции MsgBox таково: когда доходит очередь до её выполнения, на экране появляется Окно сообщения. Если используется бесскобочная форма синтаксиса, нажатие одной из кнопок на этом окне просто завершает работу функции. А если используется форма со скобками, то значение функции присваивается какой-нибудь переменной.
Возвращаемое значение – это целое число от 1 до 7. Оно зависит от того, какая из кнопок Окна сообщения нажата (Таблица 2).
Приложение 2
Функция IsNumeric
Синтаксис функции IsNumeric:
Переменная = IsNumeric(x)
Функция IsNumeric возвращает значение True, если ее аргумент х является числом, и False, если аргумент не число.
Аргументом функции вместо Переменной может выступать объект ввода. Например: y = IsNumeric(Cells(i, j).Value)