Создать диалоговое окно в Excel
Обновлено: 21.11.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 вызывается только с одним аргументом.
Теперь мы создадим диалоговое окно, в котором нас попросят подтвердить удаление перед выполнением двух инструкций. Вот три аргумента, которые мы будем использовать:
- Текст: текст диалогового окна.
- Кнопки: выбор кнопок (да, нет, отмена и т. д.) + другие параметры.
- Заголовок: заголовок диалогового окна.
vbYesNo указывает, что кнопки диалогового окна являются "Да" и "Нет", а vbYes представляет собой кнопку "Да":
Различные способы использования второго аргумента с MsgBox
Константа | Числовое значение | Описание | ||||||
---|---|---|---|---|---|---|---|---|
vbOKOnly | 0 |
Значение по умолчанию – 0. Второй аргумент, который мы используем с MsgBox, может иметь до одного значения из каждого из отдельных разделов таблицы непосредственно выше. Например, для диалогового окна, содержащего "Да, Нет, Отмена" + восклицательный знак + кнопку по умолчанию 2: См. результат ниже:
Вместо этих констант мы также можем использовать их соответствующие числовые значения. Например, следующие три строки кода идентичны: Значения, возвращаемые MsgBox
|