Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций по КИТ.doc
Скачиваний:
3
Добавлен:
04.11.2018
Размер:
2.3 Mб
Скачать

Встроенные диалоговые окна

Проектах VBA часто встречаются две разновидности диалоговых окон: окна сообщений и окна ввода. Они встроены в VBA, и если их возможностей достаточно, то можно обойтись без проектирования диалоговых окон. Окно сообщений (MsgBox) выводит простейшие сообщения для пользователя, а окно ввода (inpuBox) обеспечивает ввод информации.

Функция

InputBox

Выводит на экран диалоговое окно, содержащее сообщение и поле ввода, устанавливает режим ожидания ввода текста пользователем или нажатия кнопки, а затем возвращает зна­чение типа string, содержащее текст, введенный в поле.

Синтаксис:

InputBox (prompt [, title] [, default] [, xpos] _ [, ypos] [, helpfile, context])

Аргументы:

  • prompt — строковое выражение, отображаемое как сооб­щение в диалоговом окне. Строковое значение prompt может содержать несколько строк. Для разделения строк допускается использование символа возврата каретки (сьг(13)), символа перевода строки (chr (Ю)) или ком­бинацию этих символов (Chr(13) & Chr (10))

  • title — строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот аргумент опущен, в строку заголовка помещается имя приложения

  • default — строковое выражение, отображаемое в поле ввода как используемое по умолчанию, если пользователь не введет другую строку. Если этот аргумент опущен, по­ле ввода изображается пустым

  • xpos — числовое выражение, задающее расстояние по го­ризонтали между левой границей диалогового окна и ле­вым краем экрана. Если этот аргумент опущен, диалоговое окно выравнивается по центру экрана по горизонтали

  • ypos — числовое выражение, задающее расстояние по вертикали между верхней границей диалогового окна и верхним краем экрана. Если этот аргумент опущен, диа­логовое окно помещается по вертикали примерно на одну треть высоты экрана

  • helpfile — строковое выражение, определяющее имя файла справки, содержащего справочные сведения о дан­ном диалоговом окне. Если этот аргумент указан, необхо­димо наличие также аргумента context

  • context — числовое выражение, определяющее номер соответствующего раздела справочной системы. Если этот аргумент указан, необходимо наличие также аргумента helpfile

Процедура

MsgBox

Выводит на экран диалоговое окно, содержащее сообщение, устанавливает режим ожидания нажатия кнопки пользовате­лем, а затем возвращает значение типа integer, указываю­щее, какая кнопка была нажата.

Синтаксис:

MsgBox(prompt[, buttons] [, title] [, helpfile, context])

Аргументы:

  • prompt — строковое выражение, отображаемое как сооб­щение в диалоговом окне

  • buttons — числовое выражение, представляющее сумму значений, которые указывают число и тип отображаемых кнопок, тип используемого значка, основную кнопку и модальность окна сообщения. Значение по умолчанию этого аргумента равняется 0. Значения констант, опреде­ляющих число и тип кнопок используемого значка, при­ведены в табл. 11.1—11.3

  • title — строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот аргумент опущен, в строку заголовка помещается имя приложения

  • helpfile — строковое выражение, определяющее имя файла справки, содержащего справочные сведения о дан­ном диалоговом окне. Если этот аргумент указан, необхо­димо указать также аргумент context

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

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

Константа

Значение

Отображаются кнопки

vbOKOnly

0

vbOKCancel

1

vbAbortRetryIgnore

2

vbYesNoCancel

3

vbYesNo

4

vbRetryCancel

5

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

Константа

Значение

Отображаются кнопки

vbCritical

16

vbQuestion

32

vbExclamation

48

vbInformation

64

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

Константа

Значение

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

vbDefaultButton1

0

1

vbDefaultButton2

256

2

vbDefaultButton3

512

3

vbDefaultButton4

768

4

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

Константа

Значение

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

vbOK

I

OK

vbCancel

2

Отмена (Cancel)

vbAbort

3

Прервать (Abort)

vbRetry

4

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

vblgnore

5

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

vbYes

6

Да (Yes)

vbNo

7

Нет (No)

Приведем пример использования окон сообщений. В результате действия приведенной ниже процедуры ТестОкон появится диалоговое окно пример окна ввода с полем ввода (рис. 11.1). Следуя приглашению в этом диалого­вом окне, введем в поле ввода имя, например Андрей. Нажмем кнопку ОК. На экране отобразится диалоговое окно пример окна сообщения с текстом приветствия (рис. 11.2). Если пользователь не введет имя в поле ввода диалогового окна пример окна ввода или нажмет кнопку Отмена, то компьютер выразит свое неудовлетворение действиями пользователя отображением диалогового окна Еще один пример окна сообщения (рис. 11.3).

Рис. 11.1.-Диалоговое окно Пример окна ввода

Рис. 11.2.-Диалоговое окно Пример окна сообщения

Рис. 11.3.-Диалоговое окно Ещё один пример окна сообщения

Private Sub ТестОкон ()

‘ Описание переменной

Dim ИмяКлиента As String

‘ Ввод имени пользователя

ИмяКлиента = InputBox("Введите ваше имя", "Пример окна ввода”)

‘ Реакция программы на ввод имени пользователя

if ИмяКлиента <> “” Then

MsgBox "Привет, " & ИмяКлиента, vblnformation, "Пример окна сообщения"

Else

MsgBox "Невежа, ты забыл ввести свое имя " & ИмяКлиента, vbExclamation,_

"Еще один пример окна сообщения"

End If

End Sub

Приведем еще один пример использования диалоговых окон. Этот пример позволяет отобразить на экране диалоговое окно с тремя кнопками Да, Нет, Отмена и информационным знаком. Клавише <Enter> назначена функция кнопки Да. По нажатию одной из этих кнопок на экране отображается сообщение, подтверждающее нажатие.

Sub ТриКнопки()

Dim Сообщение As String

Dim Кнопка As Integer i

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

Сообщение = vbYesNoCancel + vbQuestion + vbbefaultButtonl

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

Кнопка= MsgBox("Выбираете Да, Нет или Отмена?", Сообщение, "Еще пример”)

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

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

Select Case Кнопка

Case vbYes

MsgBox "Выбрали Да", vblnformation, "Еще пример"

Case vbNo

MsgBox "Выбрали Нет", vblnformation, "Еще пример"

Case vbCancel

MsgBox "Выбрали Отмена", vblnformation, "Еще пример"

End Select

End Sub