Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_2_Ввод_вывод_данных.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.93 Mб
Скачать
  1. Вывод сообщений и ввод данных

В этом пункте рассматриваются следующие средства вывода сообщений на экран дисплея и ввода данных с клавиатуры при помощи диалоговых окон:

  • использование функции MsgBox;

  • использование функции InputBox;

  • применение метода InputBox;

  • именование аргументов,

  • использование объединения текстовых строк.

Функция MsgBox

Функция MsgBox служит для организации диалоговых окон, содержащих какие-либо сообщения. После своего появления на экране окно сообщения ждет, пока пользователь щелкнет на одной из кнопок, присутствующих в окне. В зависимости от того, на какой кнопке щелкнул пользователь, функция возвращает определенное целое число. Функция MsgBox имеет следующий формат:

MsgBox(Prompt[,Buttons][,Title][,Helpfile,Context])

Аргументы рассматриваемой функции означают следующее.

Prompt (Приглашение) – единственный обязательный аргумент этой функции. Значением этого аргумента служит строка текста, которая появляется как сообщение в диалоговом окне. Эта строка текста должна быть заключена в кавычки. Круглые скобки в синтаксисе MsgBox указывают на то, что в данном случае MsgBox является функцией, возвращающей какое-либо значение. Если скобки опущены, то для VBA это признак того, что данное выражение значение не возвращает и результатом выполнения инструкции MsgBox является только вывод диалогового окна.

Все остальные аргументы этой функции не обязательны.

Buttons (Кнопки) – числовое выражение, представляющее сумму значений, которые указывают число и тип отображаемых кнопок, тип используемого значка, основную кнопку и способ, каким используется окно сообщения. Значение аргумента можно задать в виде константы VBA или целым числом. Данный аргумент необязателен. Значение по умолчанию этого аргумента равняется 0 или константе vbOkOnly. Если не указан аргумент Кнопки, то VBA предполагает, что в диалоговом окне сообщения присутствует только кнопка ОК. Аргумент Кнопки позволяет управлять следующими параметрами окна сообщения:

  • количество кнопок в окне;

  • типы кнопок и их размещение в окне;

  • пиктограмма, отображаемая в окне;

  • какая кнопка назначается кнопкой по умолчанию;

  • режим окна сообщения.

Значения констант, определяющих число и тип кнопок в диалоговом окне, вид используемого информационного значка, и кнопку, на которую устанавливается фокус, приведены в таблице 1, 2 и 3 соответственно.

Таблица 1.

Значения аргумента buttons процедуры MsgBox, определяющие отображаемые кнопки в диалоговом окне

Константа

Значение

Отображаемые кнопки

vbOKOnly

0

VbOKCancel

1

VbAbortRetrylgnore

2

VbYesNoCancel

3

VbYesNo

4

VbRetryCancel

5

Таблица 2.

Значения аргумента buttons процедуры MsgBox, определяющие отображаемые информационные значки в диалоговом окне

Константа

Значение

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

VbCritical

16

VbQuestion

32

VbExclamation

48

VbInformation

64

Таблица 3.

Значения аргумента buttons процедуры MsgBox, определяющие основную кнопку в диалоговом окне

Константа

Значение

Номер основной кнопки

VbDefaultButton1

0

1

VbDefaultButton2

256

2

VbDefaultButton3

512

3

VbDefaultButton4

768

4

При написании программ, в которых в зависимости от нажатой кнопки диалогового окна необходимо выполнить определённое действие, вместо возвращаемых числовых значений удобнее использовать константы VBA (табл. 4), которые делают код программы нагляднее и позволяют избежать ошибок при написании программ.

Таблица 4.

Значения констант, соответствующие нажатой кнопке в диалоговом окне

Константа

Значение

Нажатая кнопка

vbOK

1

OK

vbCancel

2

Отмена (Cancel)

vbAbort

3

Прервать (Abort)

vbRetry

4

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

vbIgnore

5

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

vbYes

6

Да (Yes)

vbNo

7

Нет (No)

Чтобы не ошибиться при вводе значений аргумента кнопки, используйте список констант, который появляется после ввода знака "+". Знак "+" используется для объединения нескольких констант при задании сложного аргумента кнопки. Например, использование в процедуре выражения

vbYesNoCancel + vbQuestion + vbDefaultButton1

приведёт к появлению кнопок Да, Нет и Отмена (константа vbYesNoCancel), значка (константа vbQuestion) и по умолчанию к использованию первой кнопки (константа vbDefaultButton1).

Примечание

Чтобы просмотреть список всех внутренних констант VBA, необходимо в окне программного кода VBA щёлкнуть левой кнопкой мыши по имени любой константы и нажать клавишу <F1>. В появившемся окне можно найти все внутренние константы Excel.

Title (Заголовок) – содержит заголовок окна сообщения; аргумент необязательный. Без этого аргумента в заголовке будет выведено имя приложения MS Office, из которого запускается программа на VBA (Excel, Word и т.д.).

Helpfile (Справка) – строковое выражение, содержащее имя справочного файла Windows. Обычно это файл, созданный разработчиком приложения с помощью Windows Help Compiler.

Context (Раздел) – численное выражение, указывающее раздел в справочном файле, относящийся к отображаемому диалоговому окну.

Аргументы Helpfile и Context не обязательны. Они используются или опускаются вместе.

Аргументы функции необходимо перечислять в том порядке, в каком они размещены в её формате. Следовательно, в функции MsgBox они должны располагаться следующим образом:

Prompt [, Buttons] [, Title] [, Helpfile, Context])

Если какой-либо аргумент опущен, то необходимо включать в список аргументов отмечающие запятые для следующего в списке аргумента.

В приведённой ниже процедуре ФункцияMsgBox() функция MsgBox используется для:

  • определения, какая из кнопок: Да, Нет или Отмена – нажата (щёлкнута) в диалоговом окне этой функции;

  • вывода на экран сообщения, какая кнопка была нажата и наименование примера использования этой функции.

Внутренняя константа vbExclamation используется в процедуре для вывода в окне сообщения символа . Определение значения нажатой кнопки осуществляется при помощи инструкции If…ThenElse, синтаксис которой будет подробно рассмотрен в дальнейшем.

Sub ФункцияMsgBox()

Dim Структура As String

Dim Кнопка As Integer

'

' В переменной Структура задается структура диалогового окна

Структура = vbYesNoCancel + vbQuestion + vbDefaultButton1

' В переменную Кнопка вводится целое число, возвращаемое MsgBox

' при нажатии кнопки Да, Нет или Отмена в окне сообщения функции

' MsgBox

Кнопка = MsgBox("Выбрать Да, Нет или Отмена?", Структура, _

"Примеры функции MsgBox")

' На экране отображается соответствующее сообщение

' в зависимости от значения переменной Кнопка

MsgBox "Равно " & Кнопка, , "Возвращаемое значение"

If Кнопка = vbYes Then MsgBox "Выбрано Да", vbExclamation, "ПРИМЕР 1"

If Кнопка = vbNo Then MsgBox "Выбрано Нет", vbExclamation, "ПРИМЕР 2"

If Кнопка = vbCancel Then MsgBox "Выбрано Отмена", _

vbExclamation,"ПРИМЕР 3"

End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]