Функция MsgBox

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

Примечание.

Хотите создавать решения, которые расширяют возможности Office на разнообразных платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office занимают меньше места по сравнению с надстройками и решениями VSTO, и вы можете создавать их, используя практически любую технологию веб-программирования, например HTML5, JavaScript, CSS3 и XML.

Синтаксис

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

Синтаксис функции MsgBox включает следующие именованные аргументы:

Часть Описание
сообщение Обязательный аргумент. Строковое выражение, отображающееся в диалоговом окне. Максимальная длина строки аргумента сообщение составляет приблизительно 1024 знака и зависит от их ширины. Если аргумент сообщение содержит несколько строк, их можно разделить с помощью знака возврата каретки (Chr(13)), знака перевода строки (Chr(10)) или сочетания этих знаков (Chr(13) & Chr(10)).
кнопки Необязательный аргумент. Числовое выражение, являющееся комбинацией значений, указывающих количество и тип отображаемых кнопок, стиля значков, выбранной по умолчанию кнопки и модальности окна сообщения. Если аргумент кнопки пропущен, по умолчанию используется значение 0.
заголовок Необязательный аргумент. Строковое выражение, отображаемое в заголовке диалогового окна. Если аргумент заголовок пропущен, в заголовке выводится имя приложения.
файл_справки Необязательный аргумент. Строковое выражение, определяющее файл, в котором содержится контекстная справка для данного диалогового окна. Если задан аргумент файл_справки, необходимо также указать аргумент контекст.
контекст Необязательный аргумент. Числовое выражение, представляющее собой номер контекста, присвоенный автором справки соответствующему разделу. Если задан аргумент контекст, необходимо также указать аргумент файл_справки.

Параметры

Параметры аргументовкнопок:

Константа Значение Описание
vbOKOnly 0 Отображается только кнопка ОК.
vbOKCancel 1 Отображаются кнопки ОК и Отмена.
vbAbortRetryIgnore 2 Отображаются кнопки Прервать, Повторить и Пропустить.
vbYesNoCancel 3 Отображаются кнопки Да, Нет и Отмена.
vbYesNo 4 Отображаются кнопки Да и Нет.
vbRetryCancel 5 Отображаются кнопки Повторить и Отмена.
vbCritical 16 Отображается значок важного сообщения.
vbQuestion 32 Отображение значка Warning Query (Запрос с предупреждением).
vbExclamation 48 Отображение значка Warning Message (Сообщение с предупреждением).
vbInformation 64 Отображается значок информационного сообщения.
vbDefaultButton1 0 По умолчанию активна первая кнопка.
vbDefaultButton2 256 По умолчанию активна вторая кнопка.
vbDefaultButton3 512 По умолчанию активна третья кнопка.
vbDefaultButton4 768 По умолчанию активна четвертая кнопка.
vbApplicationModal 0 Модальность на уровне приложения. Пользователь должен ответить на сообщение, чтобы продолжить работу в текущем приложении.
vbSystemModal 4096 Модальность на уровне системы. При ожидании ответа пользователя на сообщение приостанавливается работа всех приложений.
vbMsgBoxHelpButton 16384 Добавляет кнопку Справка в окно сообщения.
vbMsgBoxSetForeground 65536 Расположение окна сообщения на переднем плане.
vbMsgBoxRight 524288 Текст выравнивается по правому краю.
vbMsgBoxRtlReading 1048576 Система чтения справа налево для иврита и арабского языка.

Первая группа значений (0–5) отражает число и тип кнопок в диалоговом окне. Вторая группа (16, 32, 48, 64) описывает стиль значка сообщения. Третья группа (0, 256, 512) определяет активную по умолчанию кнопку. Наконец, четвертая группа (0, 4096) устанавливает модальность сообщения. При объединении чисел в итоговое значение аргумента buttons следует использовать только один аргумент из каждой группы.

Примечание.

Эти константы задаются Visual Basic для приложений в перечислении VbMsgBoxStyle. что позволяет заменять ими числовые значения в любом месте программы.

Возвращаемые значения

Возвращаемые значения определяются в перечислении VbMsgBoxResult .

Константа Значение Описание
vbOK 1 OK
vbCancel 2 Отмена
vbAbort 3 Прервать
vbRetry 4 Повторить
vbIgnore 5 Пропустить
vbYes 6 Да
vbNo 7 Нет

Примечания

Если одновременно указаны аргументы файл_справки и контекст, пользователь может нажать клавишу F1 (Windows) или HELP (Macintosh) для просмотра раздела справки, соответствующего аргументу контекст. Некоторые ведущие приложения, например Microsoft Excel, автоматически добавляют кнопку Справка в диалоговое окно.

Если в диалоговом окне есть кнопка Отмена, ее нажатие равносильно нажатию клавиши ESC. Если в диалоговом окне есть кнопка Справка, для него доступна контекстная справка. Однако до нажатия какой-либо другой кнопки никакое значение не возвращается.

Примечание.

Для указания более одного именованного аргумента необходимо использовать функцию MsgBox в выражении. Чтобы пропустить некоторые из позиционных аргументов, нужно вставить соответствующие запятые.

Пример

В приведенном ниже примере функция MsgBox используется для вывода сообщения о критической ошибке в диалоговом окне с кнопками Да и Нет. Кнопка Нет выбрана по умолчанию. Значение, возвращаемое функцией MsgBox, зависит от нажатой пользователем кнопки. Предполагается, что DEMO.HLP является файлом справки и содержит раздел под номером контекста 1000.

Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Do you want to continue ?"    ' Define message.
Style = vbYesNo Or vbCritical Or vbDefaultButton2    ' Define buttons.
Title = "MsgBox Demonstration"    ' Define title.
Help = "DEMO.HLP"    ' Define Help file.
Ctxt = 1000    ' Define topic context. 
        ' Display message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then    ' User chose Yes.
    MyString = "Yes"    ' Perform some action.
Else    ' User chose No.
    MyString = "No"    ' Perform some action.
End If

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.