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

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

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

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

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

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

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

      1. Функция MsgBox

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

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

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

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

Если скобки опущены, то для VBA это признак того, что данное выражение значение не возвращает и результатом выполнения инструкции MsgBox является только вывод диалогового окна.

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

Buttons (Кнопки) – числовое выражение, представляющее сумму значений, которые указывают число и тип отображаемых кнопок, тип используемого значка, основную кнопку и способ, каким используется окно сообщения; аргумент необязателен. Значение по умолчанию этого аргумента равняется 0; его можно задать в виде констант VBA или целым числом. Если не указан аргумент Кнопки, то 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, которые делают код программы нагляднее и позволяют избежать ошибок при написании программ.

Константа

Значение

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

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

Ниже приведены диалоговые окна, выведенные на экран в процессе выполнения процедуры ФункцияMsgBox(). Окна ПРИМЕР 1, ПРИМЕР 2 и ПРИМЕР 3 появляются при нажатии кнопок, соответственно, Да, Нет и Отмена. В окне Возвращаемое значение выводится число 6 при выполнении инструкции MsgBox "Равно " & Кнопка, , "Возвращаемое значение", если нажата кнопка Да.