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. Евгений (автор статьи)

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

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

    1. Евгений (автор статьи)

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

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

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

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