Окно сообщения MsgBox

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

MsgBox(Сообщение[,Кнопки][,Заголовок][,Файл_помощи,Помощь])

Здесь:

Сообщение – обязательный аргумент; строковое выражение, которое и является сообщением или вопросом, обращенным к пользователю. Максимально может содержать около 1024 символов. Если сообщение необходимо разбить на несколько строк, то используются специальные символы кодовой таблицы ASCII: 13 – возврат каретки, 10 – переход на новую строку. Используются они в виде строки Chr(13)+Chr(10), которая добавляется к каждой из разбиваемых строк. Например:

MsgBox (“Вы уже посмотрели, как работает программа?”+Chr(13)+Chr(10)+“Завершить работу сейчас?”)

Кнопки – необязательный параметр, определяющий внешний вид окна сообщения:

Наименование константы Набор кнопок в диалоговом окне сообщений
VbOKOnly ОК
VbOKCancel ОК, Отмена
VbAbortRetryIgnore Стоп, Повтор, Пропустить
VbYesNoCancel Да, Нет, Отмена
VbYesNo Да, Нет
vbRetryCancel Повтор, Отмена
VbCritical Значок критического состояния
VbQuestion Значок вопроса с предупреждением
VbExclamation Значок предупреждающего сообщения
VbInformation Значок информационного сообщения

Для того, чтобы задать несколько параметров кнопок и значков одновременно, следует просто сложить соответствующие константы. Например, VbExclamation+ VbAbortRetryIgnore.

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

Файл_помощи, Помощь – необязательные аргументы, используются в паре для подключения файла помощи, если используется кнопка Справка.

Параметр Кнопки по умолчанию имеет значение VbOKOnly.

В зависимости от выбора кнопки пользователем данная функция MsgBox возвращает следующие константы:

Нажатая кнопка Константа
OK VbOK
Отмена VbCancel
Стоп VbAbort
Повтор VbRetry
Пропустить VbIgnore
Да VbYes
Нет VbNo

Если данная функция используется просто как некоторое сообщение пользователю, т.е. нет кнопок и функция не должна возвращать никакого значения, то вместо функции MsgBox() используется команда MsgBox:

MsgBox(”Деление на ноль”).

На Рис. 5 представлен пример работы процедуры, вызывающей окно сообщения с двумя кнопками Да и Нет:

Private Sub Command1_Click()

a = MsgBox("Вы уже посмотрели, как работает_

программа?" & Chr(13)&Chr(10) & "Завершить работу_

сейчас?", vbYesNo + vbQuestion, "Демонстрация_

многострочного сообщения")

If a = vbYes Then Unload Me 'Выгрузить форму