Создать диалоговое окно в Excel

Обновлено: 06.07.2024

Одна из самых больших проблем с записью макросов заключается в том, что любой текст или значения, для которых вы вводите макрос, никогда не могут впоследствии измениться. Если вы создаете макрос, который входит в заголовок Mind Over Media в текущей ячейке вашего рабочего листа, это единственный заголовок, который вы когда-либо получите из этого макроса. Однако вы можете обойти эту негибкость, используя функцию InputBox. Когда вы запускаете макрос, эта функция Visual Basic заставляет Excel отображать диалоговое окно ввода, где вы можете ввести любой заголовок, который имеет смысл для нового рабочего листа. Затем макрос помещает этот текст в текущую ячейку и форматирует этот текст, если вы научили свой макрос делать это дальше.

Чтобы увидеть, как легко использовать функцию InputBox для добавления интерактивности в обычный макрос, выполните действия по преобразованию макроса Company_Name, который в настоящее время вводит текст Mind Over Media, в макрос, запрашивающий имя, которое вы хотите войти. Функция InputBox использует следующий синтаксис:

В этой функции требуется только аргумент приглашения; остальные аргументы являются необязательными. Аргумент приглашения определяет сообщение, которое появляется в диалоговом окне ввода, предлагая пользователю ввести новое значение (или, в данном случае, новое название компании). Аргумент приглашения может содержать не более 1024 символов. Если вы хотите, чтобы подсказка отображалась в разных строках диалогового окна, введите в тексте функции Chr(13) и Chr(10) (чтобы вставить в сообщение возврат каретки и перевод строки).

Необязательный аргумент title указывает, какой текст отображать в строке заголовка диалогового окна ввода. Если вы не укажете аргумент заголовка, Excel отобразит имя приложения в строке заголовка.

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

Необязательные аргументы xpos и ypos задают расстояние по горизонтали от левого края экрана до левого края диалогового окна и расстояние по вертикали от верхнего края экрана до верхнего края диалогового окна. Если вы не укажете эти аргументы, Excel центрирует диалоговое окно ввода по горизонтали и размещает его примерно на одну треть вниз по экрану по вертикали.

Необязательные аргументы файл справки и контекст задают имя пользовательского файла справки, который вы предоставляете пользователю для объяснения работы диалогового окна ввода, а также тип данных, которые он принимает. В рамках процесса создания пользовательского файла справки для использования в справочной системе Excel вы назначаете теме номер контекста, соответствующий ее содержимому, который затем указывается в качестве аргумента контекста для функции InputBox. Когда вы указываете файл справки и аргумент контекста для этой функции, Excel добавляет кнопку справки в диалоговое окно пользовательского ввода, которую пользователи могут щелкнуть, чтобы получить доступ к пользовательскому файлу справки в окне справки.

Прежде чем вы сможете добавить строку кода в макрос с помощью функции InputBox, вам нужно найти место в командах Visual Basic, куда должна идти строка. Чтобы ввести текст Mind Over Media в активную ячейку, макрос Company_Name использует следующую команду Visual Basic:

ActiveCell.FormulaR1C1 = "Разум превыше медиа"

Чтобы сделать макрос интерактивным, необходимо вставить функцию InputBox в строку окна кода прямо над этим оператором ActiveCell.FormulaR1C1. Чтобы предоставить первые три аргумента функции InputBox (приглашение, заголовок и значение по умолчанию), вы создаете переменные, объявленные значения которых используются. Наконец, вы создаете переменную, содержащую всю функцию InputBox, и устанавливаете ее равной оператору ActiveCell, с которого начинаются инструкции макроса.

Чтобы внести эти изменения редактирования в основной записанный макрос, выполните следующие действия:

Этот курс также доступен в формате PDF и может быть загружен одним zip-файлом, который содержит:

Этот платный вариант позволяет поддерживать сайт и разрабатывать новый бесплатный контент.

Сообщение

До сих пор мы использовали только диалоговые окна MsgBox для отображения информации:

В этом случае MsgBox вызывается только с одним аргументом.

Excel 1 диалоговые окна

Теперь мы создадим диалоговое окно, в котором нас попросят подтвердить удаление перед выполнением двух инструкций. Вот три аргумента, которые мы будем использовать:

  • Текст: текст диалогового окна.
  • Кнопки: выбор кнопок (да, нет, отмена и т. д.) + другие параметры.
  • Заголовок: заголовок диалогового окна.

диалоговые окна подтверждения

vbYesNo указывает, что кнопки диалогового окна являются "Да" и "Нет", а vbYes представляет собой кнопку "Да":

Различные способы использования второго аргумента с MsgBox

< tr>< td>диалоговые окна восклицательного знака< br />
КонстантаЧисловое значениеОписание
vbOKOnly0ok диалоговые окна
vbOKCancel1ok диалоговые окна
отменить диалоговые окна
vbAbortRetryIgnore2прервать диалоговые окна
повторить диалоговые окна
игнорировать диалоговые окна
vbYesNoCancel3да диалоговые окна
нет диалоговых окон
отменить диалог ящики
vbYesNo4да диалоговые окна
нет диалоговых окон
vbRetryCancel5повторить попытку диалоговые окна
 диалоговые окна отмены
vbCritical16критические диалоговые окна
vbQuestion32диалоговые окна вопросов
vbExclamation48
vbInformation64информационные диалоговые окна
vbDefaultButton1< /тд><тд >0 Кнопка по умолчанию: Кнопка 1
vbDefaultButton2256Кнопка по умолчанию: Кнопка 2
vbDefaultButton3512Кнопка по умолчанию: Button 3
vbApplicationModal 0Заставляет пользователя предоставить ответ, прежде чем продолжить использование Excel
vbSystemModal4096 Заставляет пользователя дать ответ, прежде чем продолжать использовать любую программу на компьютере (диалоговое окно на переднем плане)

Значение по умолчанию – 0.

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

Например, для диалогового окна, содержащего "Да, Нет, Отмена" + восклицательный знак + кнопку по умолчанию 2:

См. результат ниже:

Excel 2 диалоговых окна

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

Значения, возвращаемые MsgBox

< /tr>
КонстантаЧисловое значениеКнопка, соответствующая числовому значению
vbOK1ok диалоговые окна
vbCancel2отменить диалоговые окна
vbAbort3прервать диалоговые окна
vbRetry4повторить диалоговые окна
vbIgnore5игнорировать диалоговые окна
vbYes6 yes диалог ящики
vbNo7нет диалоговых окон

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

Разрывы строк в MsgBox

Для возврата каретки можно вставить символ "разрыва строки" с помощью функции Chr и числа 10, обозначающего разрыв строки, например:

См. результат ниже:

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

Поле ввода

InputBox просит пользователя ввести значение в диалоговом окне, например:

Диалоговое окно «Параметры Excel» используется для настройки глобальных системных параметров программы Excel. Чтобы открыть диалоговое окно параметров Excel, перейдите в представление Excel Backstage, щелкнув вкладку «Файл» на ленте Excel. Щелкните последний элемент меню ("Параметры") в левом зеленом меню в представлении Excel Backstage.

Открыть Excel Диалоговое окно

Открывается диалоговое окно «Параметры Excel», как показано на рисунке ниже.

Диалоговое окно параметров Excel Окно

Диалоговое окно «Параметры Excel» (в Excel 2019) содержит 12 панелей. Каждая панель содержит связанные с ней глобальные настройки. Ниже приведены 12 панелей в диалоговом окне «Параметры Excel» и их краткое описание.

• Общие: панель «Общие» в диалоговом окне параметров Excel. Окно содержит часто используемые параметры, такие как параметры пользовательского интерфейса, параметры новых книг (например, шрифт, размер шрифта, количество листов) и т. д.

Общая панель параметров Excel показана ниже.

Параметры Excel Диалоговое окно - Формулы

• Формулы: панель формул в диалоговом окне параметров Excel. Окно содержит параметры для формул, такие как параметры расчета, проверка ошибок и т. д.

Панель формул в параметрах Excel показана ниже.

Параметры Excel Диалоговое окно - Общие

• Данные: панель данных в диалоговом окне параметров Excel содержит параметры, связанные с импортом и анализом данных.

Панель данных в параметрах Excel показана ниже.

Параметры Excel Диалоговое окно - Данные

• Правописание: панель проверки правописания в диалоговом окне параметров Excel содержит параметры, связанные с автоисправлением, проверкой орфографии и т. д.

Панель проверки правописания в параметрах Excel показана ниже.

Параметры Excel Окно диалогового окна

• Сохранить: панель «Сохранить» в диалоговом окне «Параметры Excel». Окно содержит параметры, связанные с сохранением файлов книг Excel. У него есть такие параметры, как формат файла книги по умолчанию, параметры автоматического восстановления и т. д.

Панель сохранения в параметрах Excel показана ниже.

Параметры Excel Диалоговое окно - Сохранить

• Язык: панель «Язык» в диалоговом окне параметров Excel Окно содержит параметры, связанные с используемым языком. Он имеет такие параметры, как язык редактирования, язык всплывающей подсказки, язык отображения, язык справки и т. д.

Языковая панель в параметрах Excel показана ниже.

Параметры Excel Диалоговое окно - Язык

• Специальные возможности: панель специальных возможностей в диалоговом окне параметров Excel содержит параметры, позволяющие сделать Excel более доступным для людей с ограниченными возможностями.

Панель специальных возможностей в параметрах Excel показана ниже.

Окно диалогового окна

• Дополнительно: расширенная панель в диалоговом окне параметров Excel Окно содержит параметры, которые Microsoft считает расширенными. Для настройки этих параметров пользователь должен иметь более высокий уровень знаний в Excel. Дополнительные параметры снова разделены на 14 заголовков.

Расширенная панель параметров Excel показана ниже.

Параметры Excel Окно диалогового окна - Дополнительно

• Настройка ленты: настройка панели ленты в диалоговом окне параметров Excel Окно содержит параметры для настройки ленты Excel.

Настройка панели ленты в параметрах Excel показана ниже.

 Диалоговое окно «Параметры Excel» — «Настроить ленту» width=

• Панель быстрого доступа: панель инструментов быстрого доступа в диалоговом окне параметров Excel Окно содержит параметры для настройки панели быстрого доступа Excel (QAT).

Панель панели быстрого доступа в параметрах Excel показана ниже.

Окно диалогового окна параметров Excel — панель быстрого доступа

• Надстройки: панель надстроек содержит список доступных и установленных надстроек. Надстройка Excel — это файл (обычно с расширением .xla), который загружается при запуске программы Excel. Надстройки используются для предоставления дополнительных функций Excel.

Панель надстроек в параметрах Excel показана ниже.

 Диалоговое окно параметров Excel — надстройки

• Центр управления безопасностью: Панель центра управления безопасностью содержит параметры, связанные с Центром управления безопасностью Майкрософт. Центр управления безопасностью разделен на 12 дополнительных категорий. Центр управления безопасностью — это место, где вы можете настроить параметры безопасности и конфиденциальности, связанные с Microsoft Excel.

В этой статье мы покажем вам, как создавать настраиваемые окна сообщений в Microsoft Excel с помощью VBA.

Если у вас нет опыта работы с VBA, не беспокойтесь (не забудьте также проверить это).

Это руководство станет для вас отличным введением!

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

*Это руководство предназначено для Excel 2019/Microsoft 365 (для Windows). Есть другая версия? Нет проблем, вы все равно можете выполнить те же шаги.


Каспер Лангманн, соучредитель Spreadsheeto

Оглавление

Что такое окно сообщения VBA?

Окно сообщения VBA – это всплывающее диалоговое окно, поведение которого можно запрограммировать так же, как при использовании VBA.

Он обеспечивает элегантный и иногда необходимый способ взаимодействия конечного пользователя с книгой.

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

Начало работы с VBA

Если вы никогда не использовали VBA или не работали с макросами, вы, вероятно, никогда не использовали вкладку «Разработчик». Для некоторых из вас это может означать, что он даже не виден.

Для тех из вас, кто не видит вкладку "Разработчик", перейдите на вкладку "Файл", а затем в "Параметры".

Выберите «Настроить ленту» в списке параметров. На этом этапе убедитесь, что флажок Разработчик в списке основных вкладок справа установлен.

main-tabs-developer

Получите БЕСПЛАТНЫЙ файл с упражнениями

Прежде чем начать:

В этом руководстве вам понадобится набор данных для практики.

Я включил один для вас (бесплатно).

Загрузите прямо ниже!

БОНУС: загрузите файл рабочей тетради VBA Message Box, чтобы сопровождать этот пост.

Синтаксис

Подобно функциям и формулам в Excel, функция MSGBOX — это то, как мы создаем окно сообщения с помощью VBA.

Прежде чем мы начнем писать код VBA, давайте кратко рассмотрим требования к синтаксису для функции MSGBOX.

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

=MSGBOX(Text_String , [кнопки] ,[название], [файл справки, контекст])

Первый и единственный обязательный аргумент — Text_String. Это текст сообщения.

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

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

В Excel доступно 20 констант параметров кнопок.

Если аргумент кнопки не указан, по умолчанию используется тип vbOkayOnly.

Следующий аргумент — это параметр title. Это также необязательно.

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

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

Аргумент файла справки является строковым параметром и является необязательным. Это становится обязательным, если вы используете параметр контекста.

Аргумент helpfile указывает файл справки для использования с окном сообщения.

Последний аргумент, контекст, является числовым параметром. Этот аргумент указывает номер, присвоенный соответствующему разделу справки.

Аргумент контекста является необязательным параметром, если нет аргумента файла справки.

Читайте также: