Tooprogram.ru

Компьютерный справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Vba excel вывод сообщения

Окно сообщения в VBA Excel — MsgBox

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

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

Синтаксис

Параметр Описание

  • Запрос — обязательный параметр. Строка, отображаемая в виде сообщения в диалоговом окне. Максимальная длина приглашения — около 1024 символов. Если сообщение распространяется более чем на одну строку, то строки могут быть разделены с использованием символа возврата каретки (Chr (13)) или символа перевода строки (Chr (10)) между каждой строкой.
  • Кнопки — необязательный параметр. Числовое выражение, которое указывает тип отображаемых кнопок, стиль значка для использования, идентификатор кнопки по умолчанию и модальность окна сообщения. Если оставить пустым, значение по умолчанию для кнопок равно 0.
  • Заголовок — необязательный параметр. Строковое выражение отображается в строке заголовка диалогового окна. Если заголовок оставлен пустым, имя приложения помещается в строку заголовка.
  • Файл справки — необязательный параметр. Выражение String, которое идентифицирует файл справки, который будет использоваться для предоставления контекстно-зависимой справки для диалогового окна.
  • Контекст — необязательный параметр. Числовое выражение, которое идентифицирует номер контекста справки, присвоенный автору справки, в соответствующий раздел справки. Если контекст предоставлен, также должен быть предоставлен справочный файл.

Параметр Buttons может принимать любое из следующих значений:

  • 0 vbOKOnly — отображает только кнопку OK.
  • 1 vbOKCancel — отображает кнопки «ОК» и «Отмена».
  • 2 vbAbortRetryIgnore — отображает кнопки отмены, повтора и игнорирования.
  • 3 vbYesNoCancel — отображает кнопки «Да», «Нет» и «Отмена».
  • 4 vbYesNo — отображает кнопки «Да» и «Нет».
  • 5 vbRetryCancel — отображает кнопки повтора и отмены.
  • 16 vbCritical — отображает значок критического сообщения.
  • 32 vbQuestion — отображает значок предупреждения.
  • 48 vbExclamation — отображает значок предупреждающего сообщения.
  • 64 vbИнформация. Отображает значок информационного сообщения.
  • 0 vbDefaultButton1 — первая кнопка по умолчанию.
  • 256 vbDefaultButton2 — вторая кнопка по умолчанию.
  • 512 vbDefaultButton3 — Третья кнопка по умолчанию.
  • 768 vbDefaultButton4 — Четвертая кнопка по умолчанию.
  • 0 vbApplicationModal Application modal — текущее приложение не будет работать, пока пользователь не ответит на сообщение.
  • 4096 vbSystemModal System modal — все приложения не будут работать, пока пользователь не ответит на сообщение.

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

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

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

  • 1 — нажата кнопка vbOK — OK.
  • 2 — vbCancel — нажата кнопка Отмена
  • 3 — vbAbort — нажата кнопка Abort
  • 4 — vbRetry — нажата кнопка Retry
  • 5 — vbIgnore — нажата кнопка Ignore
  • 6 — vbYes — нажата кнопка «Да»
  • 7 — vbNo — Нет щелчка

MsgBox по шагам

Шаг 1 — Вышеуказанная функция может быть выполнена либо нажатием кнопки «Выполнить» в окне VBA, либо нажатием на кнопку, которую Вы сами добавили на лист Excel.

Шаг 2 — Простой текстовый ящик отображается с сообщением «Добро пожаловать» и кнопкой «ОК»

Шаг 3 — После нажатия кнопки «ОК» отображается еще одно диалоговое окно с сообщением вместе с кнопками «да, нет и отмена».

Читать еще:  Чиствндох в excel формула на английском

Шаг 4 — После нажатия кнопки «Нет» значение этой кнопки (7) сохраняется как целое число и отображается как окно сообщения пользователю, как показано на следующем снимке экрана. Используя это значение, можно понять, какую кнопку щелкнул пользователь.

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Необязательный параметр. Числовое выражение, которое представляет собой сумму значений, задающих номер и тип отображаемых кнопок, стиль используемого значка, тип кнопки по умолчанию.
TitleНеобязательный параметр. Выражение типа String, отображаемое в заголовке диалогового окна.Имя приложения**

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

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

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

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

КонстантаОписаниеЗначение
vbOKOnlyОтображается только кнопка OK.
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

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

Канал в Telegram

Вы здесь

Примеры работы с диалоговыми сообщениями (msgbox) в VBA

В статье «Примеры макросов в Excel. Диалоговое VBA сообщение msgBox» мы вкратце познакомились с диалоговым сообщением msgbox. Но это было простейшее информационное сообщение. Теперь рассмотрим подробнее работу с функцией MsgBox и все виды диалоговых сообщений.

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

Функция MsgBox имеет следующий синтаксис:

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

Обязательным параметром является «Сообщение», остальные могут быть опущены.

MsgBox “Текст сообщения

  • Константы сообщения — позволяют определить вид диалогов.
  • Заголовок – задает заголовок формы диалога.
  • Файл справкиhlp — строковое выражение, указывающее имя файла справки для диалогового окна.
  • Контекст справки — числовое выражение, указывающее номер контекста файла справки для диалогового окна.

Диалоговое окно вида:

создается следующей командой:
MsgBox «Текст содержащий вопрос», vbYesNo, «Название сообщения»

Читать еще:  Не работает f4 в excel

Для создания сообщения такого вида:

команда будет выглядеть так:
MsgBox «Текст содержащий вопрос», vbYesNoCancel, «Название сообщения»

Сообщение такого вида:

создается командой:
MsgBox «Текст содержащий вопрос», vbAbortRetryIgnore, «Название сообщения»

т.е. из всех трех примеров в команде меняется только второй параметр (vbYesNo, vbYesNoCancel, vbAbortRetryIgnore). Это и есть значения (константы) определяющие вид сообщения. Параметры (vbYesNo, vbYesNoCancel) могут быть заменены на числовое значение, например диалог vbYesNo можно вызвать, указав 4: MsgBox «Текст содержащий вопрос», 4, «Название сообщения».

Ниже приведен полный список констант и эквивалентных им цифровых значений:

Константа

Значение

Описание

vbOKOnly

Выводит сообщение с кнопкой OK

vbOKCancel

Выводит сообщение с кнопками OK и Отмена

vbAbortRetryIgnore

Выводит сообщение с кнопками Прервать, Повтор, Пропустить

vbYesNoCancel

Выводит сообщение с кнопками Да, Нет, Отмена.

vbYesNo

Выводит сообщение с кнопками Да и Нет

vbRetryCancel

Выводит сообщение с кнопками Повтор и Отмена

В сообщениях можно слегка изменить внешний вид, назначить кнопку по умолчанию, добавить кнопку «Справка» путем сложения констант.

Например: MsgBox «Текст содержащий вопрос», vbYesNoCancel+vbInformation+vbMsgBoxHelpButton+vbDefaultButton2, «Название сообщения» построит сообщение вида:

vbInformation — добавляет иконку восклицания в сообщение
vbMsgBoxHelpButton — добавляет кнопку «Справка»
vbDefaultButton2 — устанавливает фокус на второй кнопке («Нет«)

Ниже таблица со списком констант иконок и констант, устанавливающих фокус на кнопках:

Константа

Значение

Описание

vbCritical

Выводит иконку критического сообщения (красный овал с крестом)

vbQuestion

Выводит иконку с вопросительным знаком

vbExclamation

Выводит иконку с восклицательным знаком (в желтом треугольнике)

vbInformation

Выводит иконку информационного сообщения

vbDefaultButton1

Устанавливает фокус по умолчанию на первой кнопке

vbDefaultButton2

Устанавливает фокус по умолчанию на второй кнопке

vbDefaultButton3

Устанавливает фокус по умолчанию на третьей кнопке

vbDefaultButton4

Устанавливает фокус по умолчанию на четвертой кнопке

vbMsgBoxHelpButton

Добавляет кнопку Справка

vbMsgBoxRight

Выравнивание текста сообщения по правой стороне

vbMsgBoxRtlReading

Зеркально переворачивает все элементы в сообщении (см. снимок ниже)

Как узнать какую кнопку в сообщении нажал пользователь?

Определяться выбор пользователя будет с помощью условия IF. В некоторых ситуациях можно использовать Select Case.

Например, вызовем сообщение двойным нажатием ЛКМ по любой ячейке на листе. В соответствии с выбором пользователя, выведем в эту ячейку текст.

Создаем новую книгу Excel и переходим в режим Visual Basic (Alt+F11). В окне проекта выбираем «Лист1» и кликаем по нему два раза ЛКМ.

В открывшемся окне редактора кода вводим следующую процедуру:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If MsgBox(«Текст содержащий вопрос», vbYesNo, «Название сообщения») = vbYes Then
Selection = «Нажата ДА»
Else
Selection = «Нажата Нет»
End If

End Sub

В условии IF мы сравниваем результат возвращенный функцией MsgBox, с константой vbYes т.е. если в сообщении нажата кнопка «Да», тогда функция MsgBox возвращает значение vbYes (6). Полный перечень констант и их цифровых эквивалентов ниже. Теперь попробуйте на Листе 1 кликнуть два раза по любой ячейке.

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

Второй вариант вызова диалога с помощью Select Case.

Создадим вторую процедуру на Листе 2. Код процедуры следующий:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim mes
mes = MsgBox(«Текст содержащий вопрос», vbYesNoCancel + vbInformation + vbDefaultButton2, «Название сообщения»)

Select Case mes
Case vbYes: Selection = «Нажата ДА»
Case vbNo: Selection = «Нажата НЕТ»
Case vbCancel: Selection = «Нажата Отмена»
End Select

Читать еще:  Использование массивов в excel

End Sub

В этом случае результат вызова MsgBox присваивается переменной mes и далее в Select Case ищется совпадение и согласно совпадения, выполняются действия.

Вот и все. Ниже прикреплен готовый пример, рассмотренный в этой статье.

Перечень констант и значений, возвращаемых функцией MsgBox:

Операторы ввода-вывода Программирование VBA в СУБД Access 2003

Функции или Операторы ввода (InputBox) и вывода (MsgBox)

В VBA ввод и вывод информации (для взаимодействия с пользователем) можно осуществлять в диалоговых окнах. Диалоговое окно ввода значений реализуется встроенной функцией InputBox. В окне ввода, реализованное функцией InputBox, отображается поле для ввода значения переменной, в которое пользователь должен ввести определенное значение. Далее пользователь должен нажать кнопку ОК.

Функция InputBox() имеет следующий синтаксис:

Имя_Переменной = InputBox( Prompt, [Title], [Default], [XPos], [YPos], [HelpFile], [Context])

Где аргументы: Prompt или Сообщение — обязательный аргумент, который задает в диалоговом окне информационное сообщение. Все остальные аргументы являются необязательными. Title задает заголовок окна. На рис 1 приведен модуль, в котором применена функция InputBox.

После выполнения модуля 2 появляется окно сообщения «Ввод значений переменных» (рис.2), в котором нужно ввести число и нажать кнопку ОК. В окне диалога (Рис.2), реализованном функцией InputBox (рис 1), отображаются: Заголовок окна — Ввод значений переменных; Сообщение — Введите число; Кнопки (по умолчанию) — ОК и Cancel; Поле предназначенное для ввода значений переменной.

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

Оператор MsgBox имеет следующий синтаксис:
MsgBox Prompt, [Buttons], [Title], [HelpFile], [Context]

Где аргументы: Prompt или Сообщение — обязательный аргумент, задающий в окне выводимое информационное сообщение. Все остальные аргументы являются необязательными. Buttons — Кнопки, которые можно использовать в диалоговом окне вывода сообщений. В окне сообщений могут применяться различные кнопки (ОК, Отмена и т.д.). Если не указывать, какие кнопки необходимо отображать в окне сообщений, то по умолчанию отображается кнопка ОК. Кроме того, в диалоговых окнах вывода сообщений можно использовать различные значки (vbQuestion — значок вопросительного знака, vbExclamation — значок восклицательного знака и т.д.).

Модуль, в котором MsgBox используется как оператор, приведен на рис. 3 (оператор MsgBox «3», vbOKCancel, «Вывод значений»).

При запуске модуля 4 на исполнение отображается окно сообщений «Вывод значений» (рис. 4), в котором необходимо нажать кнопку ОК. В окне (Рис.4), реализованном оператором MsgBox (Рис. 3), отображаются: Заголовок окна — Вывод значений; Сообщение — 3; Кнопки — ОК и Отмена.

Например, для вычисления функции типа y = 5 x 2 + 7 x + 9, можно использовать функцию InputBox и оператор MsgBox (рис. 5)

После выполнения модуля 5 отображается окно ввода

После ввода числа, например 789, и щелчка на кнопке ОК, появляется окно сообщения, в котором отображается результат вычисления функции у = 5 x 2 + 7 x + 9.

MsgBox можно использовать в качестве функции. Функция MsgBox() имеет следующий синтаксис: MsgBox (Prompt, [Buttons], [Title], [HelpFile], [Context]). В этом случае в окне диалога используют несколько различных кнопок. При нажатии кнопки в окне диалога функция MsgBox() возвращает значение типа Integer, которое зависит от того, какая из кнопок была нажата в диалоговом окне вывода сообщений.

Copyright

© Обучение в интернет, .
Обратная связь

Ссылка на основную публикацию
Adblock
detector