Ввод-вывод данных

Программирование в 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 суммируются константы, задающие типы выводимых значков и кнопок.


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



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