6.1. Встроенные диалоговые окна
В VBA существуют две возможности создания диалоговых окон, позволяющих вести интерактивный диалог с пользователями.
Окно сообщений MsgBox выводит простейшие сообщения для пользователя, а окно ввода InputBox обеспечивает ввод информации.
Функция InputBox выводит на экран диалоговое окно, содержащее сообщение и поле ввода, устанавливает режим ожидания ввода текста пользователем или нажатия кнопки, а затем возвращает значение типа String, содержащее текст, введенный в поле.
Синтаксис:
InputBox(сообщение [,заголовок] [,default] [,xpos] [,ypos])
Аргументы:
Чтобы передать эту информацию (введенное значение в поле ввода) программе, присвойте возвращенное функцией InputBox значение строковой переменной (рис. 75), например:
strA=InputBox(«Какие места предпочитаете?»,'РЖД','У окна')
Рис. 75. Результат функции InputBox
Процедура MsgBox выводит на экран диалоговое окно, содержащее сообщение, устанавливает режим ожидания нажатия кнопки пользователем, а затем возвращает значение типа Integer, указывающее, какая кнопка была нажата.
Синтаксис:
MsgBox(сообщение [, кнопки] [,заголовок] [,файл_справки, раздел])
Аргументы:
Если в окне сообщения всего две кнопки, для выяснения, на какой из кнопок был щелчок, прекрасно подходит оператор If … then. Например:
If MsgBox («Начинать?», vbYesNo)= vbYes then
Операторы на действие этой кнопки
Else
Операторы на действие другой кнопки
End if
Рис. 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 в рабочем режиме
Технология выполнения
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