|
Офисное программирование - Автоматизация стандартных документов |
Страница 32 из 51
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 в рабочем режиме
|
|