Чтобы показать форму UserForm (это диалоговое окно, созданное пользователем) с помощью VBA, нужно написать специальный код. Этот код включает метод Show (Шоу), который принадлежит объекту UserForm. Без выполнения хотя бы одной строки кода VBA, форма UserForm не появится на экране.
Для начала я создаю UserForm с именем МояФорма
📌 Скачать файл пример, можно в конце статьи.
Где разместить процедуру вызова формы
Процедуру, которая показывает форму UserForm, нужно разместить в стандартном модуле VBA. Это важно, потому что, если вы поместите её в модуль самой формы UserForm, код работать не будет.
Итак, наша форма называется МояФорма. Вот пример процедуры, которая покажет это диалоговое окно:
Тестирование пользовательского диалогового окна
Когда вы разрабатываете форму UserForm, часто нужно проверить, как она работает. Для этого существует несколько методов тестирования:
1. Команда Run-Run Sub/UserForm. Чтобы использовать этот метод, выберите в меню команду "Выполнить -> Выполнить процедуру/пользовательскую форму".
2. Клавиша F5. Просто нажмите клавишу <F5> на клавиатуре (при открытом редакторе VBE).
3. Кнопка Run Sub/UserForm на панели инструментов. Найдите эту кнопку на стандартной панели инструментов и нажмите на неё.
4. Назначить на рабочем листе кнопку для вызова формы.
5. Назначить комбинацию клавиш. Как это делать отражено в статье №1 и статье №58.1
Любой из этих способов запускает форму и инициализирует все её элементы. Это значит, что вы сможете увидеть диалоговое окно и проверить, как оно работает. Вы можете убедиться, что все объекты на форме активируются в правильном порядке, и (или) проверить работу комбинаций клавиш.
Закрытие пользовательской формы
Когда форма отображается на экране, она остается там до тех пор, пока вы её не закроете. Обычно на форме ставим кнопку, которая закрывает её. Эта кнопка называется CommandButton. Чтобы прописать код для этой кнопки два раза щелкните не неё. Я ввёл две кнопки с именами:
- HideForm;
- UnloadForm.
Когда вы инициализируете форму то нажимаете на неё, запускается процедура, которая закрывает форму. Для этого можно использовать два метода:
- Метод Unload - полностью выгружает форму из памяти.
- Метод Hide - скрывает форму, но оставляет её в памяти.
Вот коды для этих процедур: