Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Функция MsgBox

Встроенные диалоговые окна

Окно Watches (Окно контрольных значений)

Окно Locals (Окно локальных переменных)

Окно Immediate (Окно проверки)

Окно UserForm (Окно редактирования форм)

Для создания диалоговых окон, разрабатываемых приложений VBA, используются формы. Редактор форм является одним из основных средств визуального программирования. При добавлении формы в проект (команда "Insert" – "UserForm" ("Вставить" – "UserForm")) на экран выводится незаполненная форма с панелью инструментов Toolbox (Панель элементов) (рис. 2.2.6).

Используя панель инструментов Toolbox (Панель элементов) из незаполненной формы конструируется требуемое для приложения диалоговое окно. Размеры формы и размещаемых на ней элементов управления можно изменять. Также окно редактирования форм поддерживает операции буфера обмена. Кроме того, команды меню "Format" ("Формат") автоматизируют и облегчают процесс выравнивания элементов управления как по их взаимному местоположению, так и по размерам.

Окно Immediate (Проверка) позволяет ввести инструкцию и выполнить ее. При этом инструкция должна быть записана в одну строку, директивы которой будут выполнены после нажатия клавиши Enter. Данное окно можно использовать для быстрой проверки действий, выполняемой той или иной инструкцией. Это позволяет не запускать всю процедуру, что удобно при отладке программ.

Окно Locals (Локальные переменные) автоматически отображает все объявленные переменные текущей процедуры и их значения.

Окно Watches (Контрольные значения) применяется при отладке программ для просмотра значений выражений.

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

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

Формат функции MsgBox:

MsgBox (Prompt [, Buttons] [, Title] [, HelpFile, Context])

Единственным обязательным аргументом для MsgBox является аргумент Prompt.

Рассмотрим назначение аргументов:

· Prompt – строковое выражение, отображаемое как сообщение в диалоговом окне;

· Title – строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот аргумент опущен, в строку заголовка помещается имя приложения, из которого запускается программа VBA;

· HelpFile – строковое выражение, определяющее имя файла справки, содержащего справочные сведения о данном диалоговом окне; обычно это файл, который вы уже должны были создать с помощью Windows Help Compiler. Если этот аргумент указан, необходимо также указать аргумент Context;

· Context – числовое выражение, определяющее номер соответствующего раздела справочной системы. Если этот аргумент указан, необходимо указать также аргумент HelpFile;

· Buttons – числовое выражение, которое задает количество и тип кнопок в диалоговом окне MsgBox. Buttons указывает также кнопку по умолчанию в диалоговом окне и содержит ли это диалоговое окно стандартные значки Windows для предупредительных сообщений и запросов пользователя. В таб. 2.4.1 приведены основные значения аргумента Buttons.

Таблица 2.4.1. Значения аргумента Button

Значение аргумента Назначение
vbAbortRetryIgnore Отображает кнопки Стоп, Повтор, Пропустить (Abort, Retry, Ignore)
vbCritical Отображает значок критического предупредительного сообщения Windows (красный кружок)
vbDefaultButton1 Первая кнопка в диалоговом окне является кнопкой по умолчанию
VbDefaultButton2 Вторая кнопка является кнопкой по умолчанию
VbDefaultButton3 Третья кнопка является кнопкой по умолчанию
VbDefaultButton4 Четвертая кнопка является кнопкой по умолчанию
vbExclamation Отображает значок ("!") предупреждения
vbInformation Отображает значок ("i") информации
vbMsgBoxHelpButton Добавляет кнопку Справка (Help); при выборе этой кнопки открывается файл, который задан в аргументе HelpFile, в разделе, заданном в аргументе Context
vbOkCancel Отображает кнопки Ок и Отмена (Ok, Cancel)
vbOkOnly Отображает кнопки Ок; то же самое происходит при опускании аргумента Buttons
vbQuestion Отображает значок ("?") запроса Windows
vbRetryCancel Отображает кнопки Повтор и Отмена (Retry, Cancel)
vbYesNo Отображает кнопки Да и Нет (Yes, No)
vbYesNoCancel Отображает кнопки Да, Нет и Отмена (Yes, No, Cancel)

Рассмотрим пример использования функции MsgBox.

MsgBox "Вам видны две кнопки?", vbYesNo, "Демонстрация кнопок"

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

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

Код_ответа = MsgBox("Вам видны две кнопки?", vbYesNo, _ "Демонстрация кнопок")

При выполнении этого оператора VBA отображает то же самое диалоговое окно (рис. 2.4.1). Когда пользователь выбирает кнопку Yes или No, закрывается диалоговое окно и в переменной "Код_ответа" сохраняется число, соответствующее выбранной кнопке.

Вместо возвращаемых функцией MsgBox целочисленных значений удобнее пользоваться константами VBA, которые создаются автоматически при выполнении данной процедуры. Такие константы делают код программы удобочитаемым и, кроме того, легко запоминаются. В таб. 2.4.2 приведены возвращаемые значения констант функции MsgBox.

Таблица 2.4.2. Возвращаемые значения функцииMsgBox

Константа Означает, что пользователь нажал кнопку
vbAbort Стоп (Abort)
vbCancel Отмена (Cancel)
vbIgnore Пропустить (Ignore)
vbNo Нет (No)
vbOk Ок
vbRetry Повтор (Retry)
vbYes Да (Yes)

Теперь рассмотренный выше пример можно дополнить откликом на выбор пользователем одной из кнопок. Например:

Код_ответа = MsgBox("Вам видны две кнопки?", vbYesNo, _ "Демонстрация кнопок")If Код_ответа = vbYes Then MsgBox "Вы выбрали кнопку Yes",, "Результат выбора" Else MsgBox "Вы выбрали кнопку No",, "Результат выбора"End If

В результате выполнения данного фрагмента, при выборе одной из кнопок на экран выводится соответствующее сообщение (см. рис. 2.4.2).

<== предыдущая лекция | следующая лекция ==>
Визуальное программирование. Состав интегрированной среды разработки VBA | Функция InputBox
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 1969; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.