Да Нет Окно сообщения (Msgbox) - Примеры кода VBA

В этом руководстве будет рассказано, как использовать функцию VBA MsgBox для отображения окон сообщений для пользователей (включая окно сообщений YesNo). Возможно, вас заинтересует наша статья о InputBoxes.

Функция VBA MsgBox

В VBA легко отобразить простой MsgBox:

1 MsgBox "Это окно сообщения"

Однако вы можете сделать гораздо больше, чем просто отобразить окно с простым сообщением ОК. Давайте быстро рассмотрим сложный пример, прежде чем углубляться в детали …

VBA Да Нет Окно сообщения

Ниже мы создадим окно сообщения с:

  • Заголовок «Заголовок окна сообщения» и подсказка «Текст».
  • Значок вопросительного знака
  • Варианты Да / Нет вместо простого «ОК»
  • Кнопка по умолчанию = «Нет»
123 Тусклый ответ как целое числоanswer = MsgBox ("Текст", vbQuestion + vbYesNo + vbDefaultButton2, "Заголовок окна сообщения")

Окно сообщения вернет vbYes или vbNo в зависимости от выбора пользователя. Затем вы можете выполнять различные действия в зависимости от выбора:

12345 Если answer = vb Да ТогдаMsgBox "Да"ЕщеMsgBox "Нет"Конец, если

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

Параметры окна сообщения VBA

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

Это снимок экрана «MessageBox Builder» из нашей надстройки Premium VBA: AutoMacro. MessageBox Builder позволяет быстро создать желаемое окно сообщений и вставить код в модуль кода. Он также содержит множество других построителей кода, обширную библиотеку кода VBA и набор инструментов кодирования. Это необходимо для любого разработчика VBA.

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

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

подсказка (обязательно) - Это основной текст окна сообщения.

кнопки - Выберите, какие кнопки отображать. Если опущено, «только ОК». Здесь вы также можете указать, какой значок отображать и кнопку по умолчанию.

заглавие - Заголовок вверху окна сообщения. Если не указано, отображается имя текущего приложения (например, Microsoft Excel).

файл помощи - Укажите файл справки, к которому можно получить доступ, когда пользователь нажимает кнопку «Справка». Если указано, то вы также должны добавить контекст (ниже)

контекст - Числовое выражение, представляющее номер контекста справки, присвоенный соответствующему разделу справки.

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

Настроить заголовок окна сообщения и подсказку

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

1 Msgbox "Подсказка" ,, "Заголовок"

Другой пример:

123 Sub MsgBoxPromptTitle ()MsgBox «Шаг 1 завершен. Нажмите OK, чтобы запустить шаг 2.» ,, «Шаг 1 из 5»Конец подписки

Важный! Вы должны не забыть окружить свой текст цитатами.

MessageBox LineBreaks

Вы также можете добавить разрывы строк в приглашения окна сообщения с помощью «vbNewLine».

123 Sub MsgBoxPromptTitle_NewLine ()MsgBox «Шаг 1 завершен». & vbNewLine & "Нажмите OK, чтобы запустить шаг 2", "Шаг 1 из 5"Конец подписки

Обратите внимание, что мы используем символ & для объединения текста. Вы можете узнать больше об использовании & с текстом и других опциях для вставки разрывов строк в нашей статье о соединении текста.

Значки MsgBox

VBA дает вам возможность добавить один из четырех предварительно созданных значков в ваши окна сообщений:

Значок Постоянный Значок
vbInformation
vbCritical
vbQuestion
vbExclamation

Константа Icon должна быть помещена в аргумент кнопки:

123 Sub MsgBoxQuestionIcon ()MsgBox "Пример вопроса", vbQuestionКонец подписки

По умолчанию будет создано окно сообщения «ОК» со значком вопроса:

Обратите внимание, как при вводе текста редактор VBA показывает доступные вам параметры:

Это полезно, потому что вам не нужно запоминать точный синтаксис или названия значков или кнопок.

Теперь мы продемонстрируем каждый значок окна сообщения:

Значки MsgBox - информация

123 Sub MsgBoxInformationIcon ()MsgBox "Пример информации", vbInformationКонец подписки

Значки MsgBox - критические

123 Sub MsgBoxCriticalIcon ()MsgBox «Критический пример», vbCriticalКонец подписки

Значки MsgBox - вопрос

123 Sub MsgBoxQuestionIcon ()MsgBox "Пример вопроса", vbQuestionКонец подписки

Значки MsgBox - восклицательный знак

123 Sub MsgBoxExclamationIcon ()MsgBox «Пример восклицательного знака», vbExclamationКонец подписки

Ниже мы поговорим о создании окон сообщений с различным расположением кнопок. Если вы все же выберете другой тип окна сообщения, вам нужно будет добавить тип значка после кнопок с помощью знака «+»:

123 Sub MsgBoxQuestionIcon ()MsgBox «Продолжить?», VbOKCancel + vbQuestionКонец подписки

Переменные MsgBox

До сих пор мы работали в основном с окном сообщения «ОК» по умолчанию. В окне сообщения «ОК» есть только одна опция: нажатие «ОК» позволяет продолжить ввод кода. Однако вы также можете указать другие группы кнопок: ОК / Отмена, Да / Нет и т. Д.

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

Вот окно сообщения, которое мы сгенерируем:

Это весь код (далее мы его разберем):

123456789101112 Sub MsgBoxVariable ()Тусклый ответ как целое числоanswer = MsgBox («Продолжить?», vbQuestion + vbYesNo)Если answer = vb Да ТогдаMsgBox "Да"ЕщеMsgBox "Нет"Конец, еслиКонец подписки

Сначала мы назначаем вывод окна сообщений целочисленной переменной.

123 Тусклый ответ как целое числоanswer = MsgBox («Продолжить?», vbQuestion + vbYesNo)

Затем мы используем If-Else, чтобы определить, что делать в зависимости от того, какая кнопка нажата:

12345 Если answer = vb Да ТогдаMsgBox "Да"ЕщеMsgBox "Нет"Конец, если

Функция MsgBox возвращает целочисленное значение (от 1 до 7), поэтому мы определяем переменную как целочисленный тип. Однако вместо ссылки на целое число вы можете ссылаться на константу (например, vbOK, vbCancel и т. Д.). Посмотрите на эту таблицу, чтобы увидеть все варианты:

Кнопка Постоянный Ценить
Ok vbOK 1
Отмена vbCancel 2
Прервать vbAbort 3
Повторить vbRetry 4
Игнорировать vbIgnore 5
да vbДа 6
Нет vb Нет 7

Теперь мы продемонстрируем каждую группу кнопок:

Окно сообщения ОК - vbOKOnly

Это стандартное окно сообщений VBA.

123456 Sub MsgBox_OKOnly ()Тусклый ответ как целое числоanswer = MsgBox ("Пример OKOnly", vbOKOnly)Конец подписки

ОК Отменить окно сообщения - vbOKCancel

123456789101112 Sub MsgBox_OKCancel ()Тусклый ответ как целое числоanswer = MsgBox ("ОК, пример отмены", vbOKCancel)Если answer = vbOK ТогдаMsgBox "ОК"ЕщеMsgBox "Отмена"Конец, еслиКонец подписки

Да Нет Окно сообщения - vb Да Нет

123456789101112 Sub MsgBox_YesNo ()Тусклый ответ как целое числоanswer = MsgBox ("Да Нет, пример"; vbYesNo)Если answer = vb Да ТогдаMsgBox "Да"ЕщеMsgBox "Нет"Конец, еслиКонец подписки

Да Нет Отменить окно сообщения - vb Да Нет Отменить

1234567891011121314 Sub MsgBox_YesNoCancel ()Тусклый ответ как целое числоanswer = MsgBox ("Да Нет Пример отмены", vbYesNoCancel)Если answer = vb Да ТогдаMsgBox "Да"ElseIf answer = vbNo ТогдаMsgBox "Нет"ЕщеMsgBox "Отмена"Конец, еслиКонец подписки

Окно сообщения "Прервать повторную попытку" игнорировать - vbAbortRetryIgnore

1234567891011121314 Sub MsgBox_AbortRetryIgnore ()Тусклый ответ как целое числоanswer = MsgBox ("Пример игнорирования отмены повторной попытки", vbAbortRetryIgnore)Если answer = vbAbort ТогдаMsgBox «Прервать»ElseIf answer = vbRetry ТогдаMsgBox "Повторить попытку"ЕщеMsgBox "Игнорировать"Конец, еслиКонец подписки

Окно сообщения об отмене повторной попытки - vbRetryCancel

123456789101112 Sub MsgBox_RetryCancel ()Тусклый ответ как целое числоanswer = MsgBox ("Пример отмены повторной попытки", vbRetryCancel)Если answer = vbRetry ТогдаMsgBox "Повторить попытку"ЕщеMsgBox "Отмена"Конец, еслиКонец подписки

Примеры сообщений VBA

Подтверждение окна сообщения перед запуском макроса

Этот код отобразит окно сообщения Да Нет перед вызовом макроса. При нажатии кнопки «Да» вызывается макрос, при нажатии «Нет» макрос не запускается.

12345678 Sub Msgbox_BeforeRunning ()Тусклый ответ как целое числоanswer = MsgBox («Вы хотите запустить Macro1?», vbQuestion + vbYesNo)Если answer = vbYes, тогда вызовите Macro1Конец подписки

Окно сообщения Да / Нет - Выход из подписки

Здесь мы подтвердим пользователю, следует ли продолжать выполнение макроса. Если щелкнуть Нет, код выйдет из подпрограммы, в противном случае процедура будет продолжена.

12345678910 Sub Msgbox_BeforeRunning ()Тусклый ответ как целое числоanswer = MsgBox («Вы хотите продолжить?», vbQuestion + vbYesNo)Если answer = vbNo, то выйдите из подписки'Некоторый кодКонец подписки

Окно сообщения VBA в Access VBA

Все приведенные выше примеры работают в Access VBA точно так же, как и в Excel VBA.

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave