что означает команда msgbox
Что означает команда msgbox
Лабораторная работа №6
Окна сообщения « MsgBox »
Цель работы: Освоить использование окон сообщений « MsgBox ». Построить простые диалоги на его основе.
Окно сообщения « MsgBox »
Рис. 5. окно сообщения MsgBox
Окно сообщения является модальным по отношению к приложению. Это означает, что приложение не сможет продолжить работу, пока окно не будет закрыто.
Отобразить окно сообщения можно, без предварительного описания его в проекте, с помощью оператора или функции « MsgBox ». Принципиальная их разница состоит в том, что функция отображает окно и возвращает выбранное пользователем действие (определяет нажатую кнопку), а оператор только отображает его. Синтаксис оператора и функции следующий:
RetInt = MsgBox ( Message, [Options], [Title], [ HelpFile ],_
· RetInt – переменная целого типа, которой присваивается возвращаемое функцией значение;
· MsgBox – имя оператора/функции;
· Message – строковое выражение, которое будет отображаться в окне сообщения;
· Options – целая константа (или несколько констант), определяющая, какие кнопки и пиктограммы будут отображаться в окне сообщения (необязательный параметр);
· Title – строковое выражение, которое будет отображаться в строке заголовка окна сообщения (необязательный параметр);
· HelpFile – строка, указывающая путь к справочному файлу, в котором находится дополнительная информация, относящаяся к данной теме (необязательный параметр);
· HelpContext – число, ассоциированное с некоторой темой в справочном файле, указанном в параметре « HelpFile » (необязательный параметр).
В Visual Basic есть много предопределенных (внутренних) констант, которые можно использовать при программировании окон сообщения, указывая их в параметре « Options ». При этом можно указывать несколько таких констант, соединяя их в одно значение знаком «+».
Пиктограммы, используемые в окнах сообщений
Функция MsgBox
В базе данных Access для настольных компьютеров функция MsgBox отображает сообщение в диалоговом окне, ждет нажатия кнопки пользователем и возвращает integer, указывающее, какую кнопку нажал пользователь.
Функция MsgBox имеет следующие аргументы:
Обязательный аргумент. Строковое выражение, отображаемое как сообщение в диалоговом окне. Максимальная длина строки аргумента сообщение составляет приблизительно 1024 знаков и зависит от их ширины. Если аргумент сообщение содержит несколько строк, их можно разделить с помощью знака возврата каретки ( Chr (13 )), знака перевода строки ( Chr (10 )) или сочетания этих знаков ( Chr (13 ) & Chr (10 ))
Необязательный. числовое выражение, которая является суммой значений, которая указывает число и тип отображаемой кнопки, стиль значка, идентификатор кнопки по умолчанию и модальность окна сообщения. Если этот вопрос опущен, значение по умолчанию для кнопок — 0.
Необязательный аргумент. Строковое выражение, отображаемое в заголовке диалогового окна. Если аргумент заголовок опущен, в заголовке выводится имя приложения.
Необязательный аргумент. Строковое выражение, определяющее файл, в котором содержится контекстная справка для данного диалогового окна. Если задан аргумент файл_справки, необходимо также указать аргумент контекст.
Необязательный аргумент. Числовое выражение, представляющее собой номер контекста, присвоенный автором справки соответствующему разделу. Если задан аргумент контекст, необходимо также указать аргумент файл_справки.
Аргумент кнопкиАргумент имеет следующие параметры:
Отображается только кнопка ОК.
Отображаются кнопки ОК и Отмена.
Отображаются кнопки Прервать, Повторить и Пропустить.
Отображаются кнопки Да, Нет и Отмена.
Отображаются кнопки Да и Нет.
Отображаются кнопки Повторить и Отмена.
Отображается значок важного сообщения.
Отображается значок информационного сообщения.
По умолчанию активна первая кнопка.
По умолчанию активна вторая кнопка.
По умолчанию активна третья кнопка.
По умолчанию активна четвертая кнопка.
Модальность на уровне приложения. Пользователь должен ответить на сообщение, чтобы продолжить работу в текущем приложении.
Модальность на уровне системы. При ожидании ответа пользователя на сообщение приостанавливается работа всех приложений.
В диалоговое окно сообщения добавляется кнопка «Справка».
Окно сообщения выводится на переднем плане.
Текст выравнивается по правому краю.
Текст сообщения выводится справа налево. Эта возможность предназначена для систем, в которых используется арабский язык или иврит.
Совет: В Access 2010 построитель выражений включает функцию IntelliSense, которая указывает требуемые аргументы.
Первая группа значений (0–5) описывает количество и тип кнопок, отображаемого в диалоговом окне; Вторая группа (16, 32, 48, 64) описывает стиль значков. Третья группа (0, 256, 512) определяет, какая кнопка является кнопкой по умолчанию; и четвертая группа (0, 4096) определяет модальность окна сообщения. При добавлении чисел для создания конечного значения для аргумента кнопок используйте только одно число из каждой группы.
Примечание: Эти константы заданы Visual Basic для приложений. Таким образом, их можно использовать в любом месте кода, а не фактические значения.
Если указаны аргументы файл_справки и контекст, пользователь может, нажав клавишу F1 (Windows) или HELP (Макинтош), открыть раздел справки, заданный аргументом контекст. Некоторые принимающие приложения, например Microsoft Excel, также автоматически добавляют в диалоговое окно кнопку «Справка».
Если в диалоговом окне отображается кнопка «Отмена», то нажатие клавиши ESC действует так же, как нажатие кнопки «Отмена». Если диалоговое окно содержит кнопку «Справка», для него предоставляется контекстная справка. Однако значение не возвращается до тех пор, пока не будет нажата одна из других кнопок.
Примечание: Чтобы указать больше аргумента, необходимо использовать msgBox в выражение. Чтобы опустить некоторые позиционные аргументы, необходимо включить соответствующий запятый.
Пример
Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA).
Канал в Telegram
Вы здесь
Примеры работы с диалоговыми сообщениями (msgbox) в VBA
В статье «Примеры макросов в Excel. Диалоговое VBA сообщение msgBox» мы вкратце познакомились с диалоговым сообщением msgbox. Но это было простейшее информационное сообщение. Теперь рассмотрим подробнее работу с функцией MsgBox и все виды диалоговых сообщений.
Синтаксис функции MsgBox
Функция MsgBox имеет следующий синтаксис:
MsgBox ( сообщение [, константы сообщения] [, заголовок] [, файл справки hlp, контекст справки])
Обязательным параметром является «Сообщение», остальные могут быть опущены.
MsgBox “Текст сообщения”
Диалоговое окно вида:
создается следующей командой:
MsgBox «Текст содержащий вопрос», vbYesNo, «Название сообщения»
Для создания сообщения такого вида:
команда будет выглядеть так:
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, «Название сообщения» построит сообщение вида:
Ниже таблица со списком констант иконок и констант, устанавливающих фокус на кнопках:
Константа
Значение
Описание
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
End Sub
В этом случае результат вызова MsgBox присваивается переменной mes и далее в Select Case ищется совпадение и согласно совпадения, выполняются действия.
Вот и все. Ниже прикреплен готовый пример, рассмотренный в этой статье.
Перечень констант и значений, возвращаемых функцией MsgBox:
MsgBox function
Displays a message in a dialog box, waits for the user to click a button, and returns an Integer indicating which button the user clicked.
Interested in developing solutions that extend the Office experience across multiple platforms? Check out the new Office Add-ins model. Office Add-ins have a small footprint compared to VSTO Add-ins and solutions, and you can build them by using almost any web programming technology, such as HTML5, JavaScript, CSS3, and XML.
Syntax
MsgBox (prompt, [ buttons, ] [ title, ] [ helpfile, context ])
The MsgBox function syntax has these named arguments:
Settings
The buttons argument settings are:
Constant | Value | Description |
---|---|---|
vbOKOnly | 0 | Display OK button only. |
vbOKCancel | 1 | Display OK and Cancel buttons. |
vbAbortRetryIgnore | 2 | Display Abort, Retry, and Ignore buttons. |
vbYesNoCancel | 3 | Display Yes, No, and Cancel buttons. |
vbYesNo | 4 | Display Yes and No buttons. |
vbRetryCancel | 5 | Display Retry and Cancel buttons. |
vbCritical | 16 | Display Critical Message icon. |
vbQuestion | 32 | Display Warning Query icon. |
vbExclamation | 48 | Display Warning Message icon. |
vbInformation | 64 | Display Information Message icon. |
vbDefaultButton1 | 0 | First button is default. |
vbDefaultButton2 | 256 | Second button is default. |
vbDefaultButton3 | 512 | Third button is default. |
vbDefaultButton4 | 768 | Fourth button is default. |
vbApplicationModal | 0 | Application modal; the user must respond to the message box before continuing work in the current application. |
vbSystemModal | 4096 | System modal; all applications are suspended until the user responds to the message box. |
vbMsgBoxHelpButton | 16384 | Adds Help button to the message box. |
vbMsgBoxSetForeground | 65536 | Specifies the message box window as the foreground window. |
vbMsgBoxRight | 524288 | Text is right-aligned. |
vbMsgBoxRtlReading | 1048576 | Specifies text should appear as right-to-left reading on Hebrew and Arabic systems. |
The first group of values (0-5) describes the number and type of buttons displayed in the dialog box; the second group (16, 32, 48, 64) describes the icon style; the third group (0, 256, 512) determines which button is the default; and the fourth group (0, 4096) determines the modality of the message box. When adding numbers to create a final value for the buttons argument, use only one number from each group.
These constants are specified by Visual Basic for Applications. As a result, the names can be used anywhere in your code in place of the actual values.
Return values
Constant | Value | Description |
---|---|---|
vbOK | 1 | OK |
vbCancel | 2 | Cancel |
vbAbort | 3 | Abort |
vbRetry | 4 | Retry |
vbIgnore | 5 | Ignore |
vbYes | 6 | Yes |
vbNo | 7 | No |
Remarks
When both helpfile and context are provided, the user can press F1 (Windows) or HELP (Macintosh) to view the Help topic corresponding to the context. Some host applications, for example, Microsoft Excel, also automatically add a Help button to the dialog box.
If the dialog box displays a Cancel button, pressing the ESC key has the same effect as clicking Cancel. If the dialog box contains a Help button, context-sensitive Help is provided for the dialog box. However, no value is returned until one of the other buttons is clicked.
To specify more than the first named argument, you must use MsgBox in an expression. To omit some positional arguments, you must include the corresponding comma delimiter.
Example
See also
Support and feedback
Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.
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 |
Для просмотра отображаемых значков, скопируйте код в свой модуль и запустите на выполнение: