Программирование в Microsoft Excel
Лабораторная работа №2
Ввод-вывод данных
2.1. Использование в приложениях встроенных диалоговых окон
Рассмотрим использование в приложениях диалоговых окон, встроенных в VBA. В VBA их два вида: окно сообщения, которое выводит на экран информацию для пользователя и окно ввода, которое обеспечивает ввод информации.
Окно ввода информации выводится на экран с помощью функции InputBox, которая имеет следующий синтаксис:
InputBox (Prompt [, Title ] [, Default ]), где
Prompt - строковое выражение, отображаемое как сообщение в диалоговом окне;
Title - строковое выражение, отображаемое в заголовке диалогового окна.
Default – строковое выражение, которое будет отображаться в строке ввода до ввода информации пользователем.
Результат функции – строка, числовое или логическое значение, введённое пользователем - подставляется в место вызова функции. Функция InputBox может применяться, где угодно, кроме случаев, когда ей присваивается значение – в левой части оператора присваивания и в вызовах подпрограмм в качестве возвращаемого значения. Посмотрите рассмотренный ранее пример, но уже с вводом углов f1 и f2 с клавиатуры:
|
|
Sub ShowFunction2()
Dim g As Single
Dim f As Single
f1 = InputBox("Введите угол f1:")
f2 = InputBox("Введите угол f2:")
g1 = Sin(3.14 / 180 * f1)
g2 = Sin(3.14 / 180 * f2)
MsgBox " Sin(" & CStr(f1) & ") равен: " & CStr(g1) & Chr(13) & _
" Sin(" & CStr(f2) & ") равен: " & CStr(g2)
End Sub
Окно сообщения выводится на экран с помощью процедуры (или функции) MsgBox, которая имеет следующий синтаксис (здесь и далее квадратные скобки обрамляют необязательные ветви операторов):
MsgBox Prompt [, Buttons ] [, Title ], где
Buttons - числовое значение, которое указывает число и тип отображаемых кнопок;
Prompt и Title имеют аналогичное значение;
Параметр Button может принимать следующие значения:
Константа | Значение | Отображаются кнопки |
VbOKOnly VbOKCancel VbAbortRetryIgnore VbYesNoCancel VbYesNo VbRetryCancel | OK OK, Отмена Стоп, Повтор, Пропустить Да, Нет, Отмена Да, Нет Повтор, Отмена |
Константа | Значение | Значок сообщения на окне |
VbCritical VbQuestion VbExclamation VbInformation | Запрет Вопрос Предупреждение Сообщение |
В качестве параметра Button можно использовать как константы, так и их значения.
Если необходимо вывести на экран какое – либо сообщение, то MsgBox используется как процедура:
Sub ShowFunction3()
Dim g As Single
Dim f As Single
f = InputBox(" Введите значение угла в градусах: ", "Ввод параметра", "0")
g = Sin(3.14 / 180 * f)
MsgBox " Sin(" & CStr(f) & ") равен: " & CStr(g), vbInformation, "Результат"
End Sub
В данном примере в параметре Prompt процедуры MsgBox используется объединение нескольких строковых величин в одну при помощи операции объединения строк &. Для того, чтобы записать числа f и g в строку используется встроенная функция CStr(), которая преобразует числовые величины в строковые. Здесь вызов MsgBox представляет собой отдельный оператор.
|
|
Если же необходимо узнать какую кнопку нажал пользователь в окне, то необходимо использовать MsgBox как функцию. В этом случае её вызов находится в правой части оператора присваивания, а её параметры заключают в скобки:
Переменная = MsgBox(…)
В этом случае функция возвращает одно из следующих значений:
Константа | Значение | Кнопка |
VbOK | OK | |
VbCancel | Отмена(Cancel) | |
VbAbort | Прервать(Abort) | |
VbRetry | Повторить(Retry) | |
VbIgnore | Пропустить(Ignore) | |
VbYes | Да(Yes) | |
VbNo | Нет(No) |
Пример:
Sub ShowMsgBoxFunction()
Dim iResult As Integer
IResult = MsgBox(“Нажмите одну из кнопок”, _
vbYesNoCancel + vbInformation, ”VBA”)
Select Case iResult
Case vbYes
MsgBox “Нажата кнопка “”Да”””, vbInformation, “Случай: iResult = vbYes ”
Case vbNo
MsgBox “Нажата кнопка ””Нет””", vbInformation, “Случай: iResult = vbNo ”
Case vbCancel
MsgBox “Нажата кнопка “”Отмена”””, vbInformation, “Случай: iResult = vbCancel ”
End Select
End Sub
В данном примере сначала оператор Dim описывает переменную iResult как целую величину. В следующем операторе (операторе присваивания) функция MsgBox выводит на экран диалоговое окно с 3 кнопками и результат нажатия пользователя присваивается переменной iResult. Затем оператор выбора Select Case (он будет рассмотрен в следующей лабораторной работе вместе с условными операторами) проверяет какая кнопка была нажата и на экран процедурой MsgBox выводится соответствующее сообщение.Обратите внимание на то, как в MsgBox задаются различные сочетания значков и кнопок в диалоговом окне:
vbYesNoCancel + vbInformation
– в параметре Button суммируются константы, задающие типы выводимых значков и кнопок.