Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

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 по тематическим разделам со ссылками на все статьи.

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

    1. У Вас такие классные лекции по VBA! Очень наглядное и доступное изложение!

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

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

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

    3. Евгений

      Сергей, специалиста по созданию баннеров, к сожалению, у нас нет.

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

      1. Евгений

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

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

    5. Можно ли изменить текст в кнопках?
      Например в кнопках "vbYesNoCancel"
      "Да" "Нет" "Отмена" на свои "Добавить" "Пересчитать" "Отмена"

      Можно ли 4 кнопки ?

      1. Евгений

        Здравствуйте, Люба!
        Текст в кнопках изменить невозможно, как и увеличить их количество. Используйте для этих целей пользовательскую форму.

    Обсуждение закрыто.