Диалоговое Окно Сохранить Как Vba Excel • Написание кода

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

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

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

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

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

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

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

Диалоговое Окно Сохранить Как Vba Excel • Написание кода

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

Диалоговое Окно Сохранить Как Vba Excel • Написание кода

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

Диалоговое Окно Сохранить Как Vba Excel • Написание кода

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

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

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

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

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

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

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

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

Диалоговое Окно Сохранить Как Vba Excel • Написание кода

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

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

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

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

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

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

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

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

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

Диалоговое Окно Сохранить Как Vba Excel • Написание кода

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

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

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

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

Диалоговое Окно Сохранить Как Vba Excel • Написание кода

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

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

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

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

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

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

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

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

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

Защита проекта VBA в MS Excel / Хабр
3. Переименовать кнопку в “Количество абзацев”. Для этого на панели элементов управления вызовите “Свойства”. Появится панель “Properties”. Выберите свойство “Caption” и в правой колонке наберите название.
[expert_bq id=»1570″]В редакторе Word, в отличие от Excel, установлена сильная защита от макросов макросы рассматриваются как вирусы , и при повторном открытии одного и того же документа, в котором все программы и макросы работали, запроса на включение или отключение макросов не будет, и работать также ничего не будет. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] Сохраните проект как Project_HappyFace. dvb в папке AutoCAD2007\Support . Вернитесь к чертежу и выберите команду Tools — Macro — Macros . В диалоговом окне выберите процедуру HappyFace и щелкните по кнопке Run . Ответьте на приглашения.
Vstavka_modulya

Как сохранить программный код макроса? Что такое модули?

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

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

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: