Закрытие пользовательской формы в приложениях VBA Excel является важной частью процесса разработки приложений и микро-интерфейсов.
Существует два основных метода для закрытия формы: Unload Me и Me.Hide.
В этом обзоре мы рассмотрим разницу между этими методами и их способы применения.
▶️ Пример исходных данных
В качестве примера рассмотрим две формы с размещенными на них элементами управления.
- UserForm1:
- UserForm2:
▶️ Unload Me
- это метод, который полностью закрывает форму и освобождает память, занимаемую формой.
Он используется для окончательного закрытия формы, когда она больше не нужна, и требуется освободить ресурсы.
✅ Преимущества Unload Me:
- полностью освобождает память, что особенно полезно, если в приложении много форм, и вы хотите, чтобы они не занимали лишнюю память.
⚠️ Ограничения Unload Me:
- использование Unload Me ведет к невозможности внесения (корректировки) ранее введенных данных после её закрытия.
▶️ Me.Hide
- это метод, который просто скрывает форму от пользователя, но форма остается в памяти и может быть показана снова в любой момент.
✅ Преимущества Me.Hide:
- позволяет сохранить форму в памяти и снова показать ее пользователю без необходимости пересоздавать форму (удобно для временного скрытия формы).
⚠️ Ограничения Me.Hide:
- если много скрытых форм, это может привести к излишнему использованию памяти.
▶️ Когда использовать каждый метод
- Используйте Unload Me, когда требуется окончательно закрыть форму и освободить память. Это хороший выбор, когда форма больше не нужна.
Например,
🔔 Обратите внимание! данные внесенные в TextBox1 при возврате на форму будут удалены:
- Используйте Me.Hide, когда требуется временно скрыть форму, но сохранить ее в памяти для будущего использования. Это полезно, если планируете показать форму снова в ответ на действия пользователя.
Например,
➡️ В данном случае все ранее введенные данные будут сохранены:
▶️ Подведем итог
Выбор между Unload Me и Me.Hide зависит от конкретного сценария.
Оба метода имеют свои преимущества и ограничения, и правильный выбор зависит от того, как планируется использовать форму.
Понимание разницы между этими методами позволит применять их соответственно потребностям.
А подробнее, о том, как можно применить рассмотренные методы мы рассмотрим на примере создания приложения уже в следующих обзорах 😉
📍 Рекомендуемые статьи 🔽