В VBA существуют две возможности создания диалоговых окон, позволяющих вести интерактивный диалог с пользователями.
Окно сообщений MsgBox выводит простейшие сообщения для пользователя, а окно ввода InputBox обеспечивает ввод информации.
Синтаксис:
InputBox (сообщение [, заголовок ] [, default ] [, xpos ] [, ypos ])
Аргументы:
сообщение – строковое (текстовое) выражение, отображаемое как сообщение в диалоговом окне. Может содержать несколько строк.;
заголовок - строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот аргумент опущен, в строку помещается имя приложения;
Default - строковое выражение, отображаемое в поле ввода как используемое по умолчанию, если пользователь не введет другую строку. Если этот аргумент опущен, поле ввода отображается пустым;
Xpos - числовое выражение, задающее расстояние по горизонтали между левой границей диалогового окна и левым краем экрана;
Ypos - числовое выражение, задающее расстояние по вертикали между верхней границей диалогового окна и верхним краем экрана.
|
|
Синтаксис:
MsgBox сообщение [, кнопки ] [, заголовок ] [, файл_справки, раздел ]
Аргументы
сообщение - строковое выражение, отображаемое как сообщение в диалоговом окне;
кнопки - числовое выражение, представляющее сумму значений, которые указывают число и тип отображаемых кнопок, тип используемого значка, основную кнопку и модальность окна сообщения. Значение по умолчанию равно 0. Все значения данного аргумента указаны в таблице 3.1;
заголовок - строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот аргумент опущен, в строку помещается имя приложения;
файл справки - строковое выражение, определяющее имя файла справки, содержащего справочные сведения о данном диалоговом окне. Если этот аргумент указан, необходимо наличие также аргумента context;
раздел - числовое выражение, определяющее номер соответствующего раздела справочной системы.
Таблица 3.1 – Значения аргумента кнопки процедуры MsgBox
Константа | Значение / код | Отображаемые кнопки |
VbOkOnly | MsgBox("Привет!", vbOKOnly)=vbOk | |
VbOkCancel | MsgBox ("Привет!", vbOKCancel)=vbOk | |
VbAbortRetryIgnore | MsgBox ("Привет!", VbAbortRetryIgnore)=vbAbort | |
VbYesNoCancel | MsgBox("Привет!", VbYesNoCancel)=vbYes | |
VbYesNo | MsgBox ("Привет!", vbYesNo)=vbYes | |
VbRetryCancel | MsgBox ("Привет!", VbRetryCancel)=vbretry | |
VbCritical | MsgBox("Привет!", vbCritical)=vbYes | Критическое сообщение |
VbQuestion | MsgBox("Привет!", VbQuestion)=vbYes | Запрос |
VbExclamation | MsgBox("Привет!", VbExclamation)=vbYes | Предупреждение |
VbInformation | MsgBox("Привет!", vbInformation)=vbYes | Информация |
Если в окне сообщения всего две кнопки, для выяснения, на какой из кнопок был щелчок, прекрасно подходит оператор If … then. Например:
|
|
If MsgBox ("Начинать?", vbYesNo)= vbYes then
Операторы на действие этой кнопки "Yes"
Else