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

Диалоговые окна

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

Окно сообщений MsgBox выводит простейшие сообщения для пользователя, а окно ввода InputBox обеспечивает ввод информации.

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

Синтаксис:

InputBox(сообщение [,заголовок] [,default] [,xpos] [,ypos])

Аргументы:

сообщение – строковое выражение, отображаемое как сообщение в диалоговом окне. Может содержать несколько строк. Для разделения строк допускается использование символа возврата каретки (chr(13)), символа перевода строки (chr(10)) или комбинации этих клавиш (chr(13) & chr(10));

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

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

Xpos – числовое выражение, задающее расстояние по горизонтали между левой границей диалогового окна и левым краем экрана;

Ypos – числовое выражение, задающее расстояние по вертикали между верхней границей диалогового окна и верхним краем экрана.

Чтобы передать эту информацию (введенное значение в поле ввода) программе, присвойте возвращенное функцией InputBox значение строковой переменной (рис. 75), например:

strA=InputBox(«Какие места предпочитаете?»,'РЖД','У окна')

Рис. 75. Результат функции InputBox

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

Синтаксис:

MsgBox(сообщение [, кнопки] [,заголовок] [,файл_справки, раздел])

Аргументы:

сообщение – строковое выражение, отображаемое как сообщение в диалоговом окне;

кнопки – числовое выражение, представляющее сумму значений, которые указывают число и тип отображаемых кнопок, тип используемого значка, основную кнопку и модальность окна сообщения. Значение по умолчанию равно 0. Все значения данного аргумента см. в табл. 17, 18;

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

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

раздел – числовое выражение, определяющее номер соответствующего раздела справочной системы.

Таблица 17

Значения аргумента кнопки процедуры MsgBox

Примечание. Первые кнопки активны по умолчанию.

Таблица 18

Значения аргумента кнопки процедуры MsgBox

Если в окне сообщения всего две кнопки, для выяснения, на какой из кнопок был щелчок, прекрасно подходит оператор If … then. Например:

If MsgBox («Начинать?», vbYesNo)= vbYes then

Операторы на действие этой кнопки

Else

Операторы на действие другой кнопки

End if

Пример 35. Создать программу таким образом, чтобы при запуске формы, вводе имени в текстовое поле и нажатии на кнопку «Вывод текста» появлялось диалоговое окно, запрашивающее разрешение вывести текст (рис. 76).

Рис. 76. Форма примера 35 в режиме конструктора

Листинг работы формы

Private Sub CommandButton1_Click()

If MsgBox(«Вывести текст?», vbYesNo) = vbYes Then

If Documents.Count = 0 Then Documents.Add Selection.Text = «Изучение работы с текстом в документе Word является важной составной частью умения программировать в VBA, „+ TextBox1.Text + «, и отвечает запросам всех программистов!“

Selection.Font.Color = wdColorBlue

Selection.Font.Bold = wdToggle

Selection.Font.Italic = wdToggle

Else

Unload Me

End If

End Sub

В результате запуска приложения (рис. 77) в документе Word появится предложение:

Изучение работы с текстом в документе Word является важной составной частью умения программировать в VBA, Света, и отвечает запросам всех программистов!

Рис. 77. Форма примера 35 в рабочем режиме

Задачи на закрепление материала

Пример 36. Создать форму, имитирующую простейшую игру в орла и решку (рис. 78). Игрок выставляет флажок вместо подбрасывания монеты, а компьютер после нажатия кнопки Бросание монеты запускает случайное число, соответствующее орлу или решке. При совпадении выигрывает компьютер, при несовпадении – игрок. Все действия сопровождаются всплывающими диалоговыми окнами.

Технология выполнения

1. Создайте форму для реализации этой игры.

2. Описание процедур.

Кнопка Бросание монеты

Private Sub CommandButton1_Click()

Randomize

монета = Int(2 * Rnd)

If OptionButton1.Value = True Then

If монета = 0 Then MsgBox «не везет. Займись-ка лучше изучением VBA»

If монета = 1 Then MsgBox «везунчик. Поздравляю, ты выиграл»

End If

If OptionButton2.Value = True Then

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату