Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA_02_Ввод-вывод данных.doc
Скачиваний:
4
Добавлен:
15.08.2019
Размер:
101.89 Кб
Скачать

6

Программирование в 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

0

1

2

3

4

5

OK

OK, Отмена

Стоп, Повтор, Пропустить

Да, Нет, Отмена

Да, Нет

Повтор, Отмена

Константа

Значение

Значок сообщения на окне

VbCritical

VbQuestion

VbExclamation

VbInformation

16

32

48

64

Запрет

Вопрос

Предупреждение

Сообщение

В качестве параметра 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

1

OK

VbCancel

2

Отмена(Cancel)

VbAbort

3

Прервать(Abort)

VbRetry

4

Повторить(Retry)

VbIgnore

5

Пропустить(Ignore)

VbYes

6

Да(Yes)

VbNo

7

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