VBA Excel. Функция MsgBox (синтаксис, параметры, значения)

    Использование функции MsgBox в VBA Excel, ее синтаксис и параметры. Значения, возвращаемые функцией MsgBox. Примеры использования.

    Функция MsgBox предназначена в VBA Excel для вывода сообщения в диалоговом окне, ожидания нажатия кнопки и возврата значения типа Integer, указывающего на то, какая кнопка была нажата. Для упрощения восприятия информации, в этой статье не рассматриваются параметры, связанные с контекстной справкой и модальностью диалогового окна MsgBox.

    Синтаксис функции

    MsgBox ( Prompt [, Buttons ] [, Title ])

    Обязательным параметром функции MsgBox является Prompt, если Buttons и Title явно не указаны, используются их значения по умолчанию. Кроме того, если необязательные параметры не указаны и возвращаемое значение не присваивается переменной, сообщение не заключается в скобки:

    Пример 1

    Параметры функции

    Параметр Описание Значение
    по умолчанию
    Prompt* Обязательный параметр. Выражение типа String, отображаемое в диалоговом окне в виде сообщения. Разделить на строки можно с помощью константы vbNewLine. Нет
    Buttons Необязательный параметр. Числовое выражение, которое представляет собой сумму значений, задающих номер и тип отображаемых кнопок, стиль используемого значка, тип кнопки по умолчанию. 0
    Title Необязательный параметр. Выражение типа String, отображаемое в заголовке диалогового окна. Имя приложения**

    *Максимальная длина параметра Prompt составляет примерно 1024 знака и зависит от их ширины.

    **В Excel по умолчанию в заголовке MsgBox выводится надпись «Microsoft Excel».

    Константы параметра «Buttons»

    Тип и количество кнопок

    Константа Описание Значение
    vbOKOnly Отображается только кнопка OK. 0
    vbOKCancel Отображаются кнопки OK и Cancel (Отмена). 1
    vbAbortRetryIgnore Отображаются кнопки Abort (Прервать), Retry (Повторить) и Ignore (Пропустить). 2
    vbYesNoCancel Отображаются кнопки Yes (Да), No (Нет) и Cancel (Отмена). 3
    vbYesNo Отображаются кнопки Yes (Да) и No (Нет). 4
    vbRetryCancel Отображаются кнопки Retry (Повторить) и Cancel (Отмена). 5

    Стиль значка

    Константа Описание Значение
    vbCritical Отображается значок Critical — Критичное сообщение, сообщение об ошибке. 16
    vbQuestion Отображается значок Question — Сообщение с вопросом. 32
    vbExclamation Отображается значок Exclamation — Предупреждающее сообщение. 48
    vbInformation Отображается значок Information — Информационное сообщение. 64

    Для просмотра отображаемых значков, скопируйте код в свой модуль и запустите на выполнение:

    Пример 2

    Кнопка по умолчанию

    Константа Описание Значение
    vbDefaultButton1 По умолчанию активна первая кнопка. 0
    vbDefaultButton2 По умолчанию активна вторая кнопка. 256
    vbDefaultButton3 По умолчанию активна третья кнопка. 512

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

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

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

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

    • Prompt = «Выберите кнопку!»
    • Buttons = 323 (3 (vbYesNoCancel) + 64 (vbInformation) + 256 (vbDefaultButton2))
    • Title = «Выбор кнопки»

    Вторая функция MsgBox используется как простое информационное сообщение с параметрами по умолчанию.

    Пример 3

    В этом примере, в зависимости от нажатой кнопки в первом диалоговом окне, во втором сообщении выводится название нажатой кнопки. Обратите внимание, что вторая кнопка в открывшемся первом окне MsgBox выделена по умолчанию и срабатывает при нажатии клавиши «Enter».

    А что будет, если первое диалоговое окно из третьего примера закрыть крестиком? Проверьте сами.

    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

    8 комментариев для “VBA Excel. Функция MsgBox (синтаксис, параметры, значения)”

    1. Сергей, Химки

      минуточку… будьте любезны помедленнее, я записываю…
      А нельзя ли в лс на пальцах объяснить, как сделать анимированную gif иконку-баннер (для размещения на сайт) с нужными размерами, нужными кнопками и нужным текстом…?

      1. ))) на гифку кнопки не наложишь, все будет как картинка! В фотошопе сделай, это элементарно!

    2. Здравствуйте!
      А есть ли возможность использовать messagebox в качестве таймера обратного отсчёта?
      (вывести цифру, подождать секунду, закрыть окно, вывести цифру минус один)
      Спасибо!

      1. Евгений

        По-моему, так сделать таймер обратного отсчёта не получится. Информационное окно MsgBox невозможно закрыть из кода VBA.

        1. Моя задача заключалась в том, чтобы сделать таймер обратного отсчёта без использования графической формы.
          На просторах интернета я нашёл следующее решение (чуть адаптировал к своей задаче).
          Может кому пригодится

    Добавить комментарий

    Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора.