Excel vba как закрыть форму
Метод Close выполняет действие закрытия в Visual Basic.
Синтаксис
выражение.Close (ObjectType, ObjectName, Save)
выражение: переменная, представляющая объект DoCmd.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
ObjectType | Необязательный | AcObjectType | Константа AcObjectType, представляющая тип закрываемого объекта. |
ObjectName | Необязательный | Variant | Строковое выражение, которое является допустимым именем объекта типа, выбранного аргументом ObjectType. |
Save | Необязательный | AcCloseSave | Константа AcCloseSave, указывающая, нужно ли сохранять изменения в объекте. Значение по умолчанию — acSavePrompt. |
Примечания
Используйте метод Close, чтобы закрыть указанное окно Microsoft Access или активное окно, если не указано определенное окно.
Если оставить аргументы ObjectType и ObjectName пустыми (для аргумента ObjectType предполагается константа по умолчанию acDefault), Access закрывает активное окно. Если указать аргумент Save и оставить аргументы ObjectType и ObjectName пустыми, необходимо включить запятые аргументов ObjectType и ObjectName.
Пример
В следующем примере используется метод Close, чтобы закрыть форму Order Review (Проверка заказа), сохранив все изменения в форме, не выполняя запрос.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
В Excel при использовании через VBA автофильтра и затем его отмены на листе исчезают пользовательские формы
В Excel при использовании через VBA автофильтра и затем его отмены на листе исчезают.
Нарисовать средствами VBA на рабочем листе Excel флаг Турции
Добрый вечер! Помогите, пожалуйста. Необходимо нарисовать средствами VBA на рабочем листе Excel.
Excel+VBA как программно вставить и сохранить на листе картинку из внешнего файла?
Здравствуйте! Вопрос следующий: есть лист Excel и картинка, которая лежит в одной из папок. Мне.
А может быть, стоит обработать событие UserForm_KeyPress и,
если это клавиша ESC, выполнить закрытие формы, а на другие клавиши не реагировать.
Кто тебя учил выгружать (unload) форму в кнопке? Не руби сук, на котором сидишь! Напиши в коде кнопки me.hide - это переведет тебя в команду в вызывающей процедуре после show - сделай там, что требуется, а затем выгружай форму!
Не хочу размещать кнопки на форме - как и где завязать закрытие моей формы на нажатие Esc (на клавиатуре)
Не хочу размещать кнопки на форме - так сделай ее масенькой (все размеры и положение=1 - прекрасно работает.
Кстати, а какие элементы есть на форме?
Код может и не сработать, если, например, фокус на TextBox(e).
Только ListBox
К этой процедуре надо обратиться с фактическим параметром KeyAscii - как это - ПРОШУ ПРОЩЕНИЯ
VBA в MS Excel надо чтобы все введённые значения появлялись на листе только после закрытия последней
Делал психологический тест в Excel, каждый вопрос появляется в своей UserForm, в которой есть.
VBA Excel: Если где либо на листе есть слово "Вася", то текст в данной строке меняет цвет
Подскажите пожалуйста, как в VBA в excel написать- Если где либо на листе есть слово "Вася", то.
По нажатию кнопки создать на втором листе строку и заполнить ее данными с формы на первом листе
Здравствуйте. Помогите решить задачу: Имеется книга с двумя листами на первом листе форма-.
Создание печатной формы из данных - VBA (Excel)
Добрый день! Я новичок в программировании, поэтому прошу помощи знатоков в этом деле :) Есть.
Когда мы создаем пользовательскую форму, она принимает данные в качестве ввода от пользователей, но данные, предоставляемые форме, не закрываются, поэтому они могут ввести пользователя в заблуждение, чтобы снова ввести данные, мы используем две разные команды, чтобы закрыть пользовательскую форму, когда ввод было дано, и это метод Unload me, чтобы закрыть пользовательскую форму, или мы можем использовать метод userform.hide.
Excel VBA Закрыть пользовательскую форму
Пользовательские формы жизненно важны при получении входных данных от пользователя в рамках проекта VBA. Обычно мы разрабатываем пользовательскую форму до того, как представим ее пользователю. После завершения проектирования пользовательской формы VBA нам нужно показать то же самое перед пользователем и потребовать кодирования VBA. Точно так же, чтобы закрыть пользовательскую форму, требуются знания кодирования VBA.
В этой статье мы покажем вам, как закрыть пользовательскую форму в кодировке VBA.
Как закрыть UserForm в Excel VBA?
Как только назначение пользовательской формы выполнено, есть смысл продолжать показывать пользовательскую форму перед пользователем, поэтому нам нужно закрыть пользовательскую форму. Мы можем закрыть пользовательскую форму с помощью операторов «Unload Me» и «UserForm.Hide». Хотя оба они немного отличаются друг от друга, в конечном итоге это послужит нашей цели.
Например, посмотрите на изображение пользовательской формы ниже.
Я назвал пользовательскую форму «MyUserForm».
Если я запустил пользовательскую форму, мы увидим пользовательскую форму, как показано ниже.
После нажатия кнопки отправки он захватил данные, которые я ввел в пользовательскую форму.
Если вы заметили, у нас есть еще одна кнопка под названием «Отмена». Что это значит?
Прежде чем отображать пользовательскую форму, нам нужно настроить эту кнопку. Теперь я вернусь к базовому визуальному редактору, чтобы настроить эту кнопку.
Теперь я дважды щелкну по кнопке «Отмена», и откроется автоматическая Подпроцедура VBA Подпроцедура VBA SUB в VBA — это процедура, которая содержит весь код, который автоматически дает инструкцию end sub, а средняя часть используется для кодирования. Оператор Sub может быть как общедоступным, так и частным, а имя подпроцедуры является обязательным в VBA. читать далее как показано ниже.
В этой процедуре нам необходимо напишите код VBA Напишите код VBA Код VBA относится к набору инструкций, написанных пользователем на языке программирования приложений Visual Basic в редакторе Visual Basic (VBE) для выполнения определенной задачи. читать далее о том, что должно произойти, если мы нажмем кнопку Отмена. Когда мы нажимаем на эту кнопку отмены, она должна закрыть пользовательскую форму, над которой мы работаем в данный момент.
Итак, напишите код как «Разгрузите меня».
Код:
«Разгрузить меня» — это слово, которое мы используем, чтобы закрыть пользовательскую форму, над которой мы работаем. Здесь пользовательская форма распознает слово «Я» как саму UserForm.
Хорошо, давайте теперь запустим код с помощью клавиши F5 или вручную, мы увидим пустую пользовательскую форму.
После нажатия кнопки отправки значения будут сохранены в упомянутых ячейках.
Если ввод данных завершен, нам нужно закрыть пользовательскую форму. Не правда ли ??
Итак, нажмите кнопку «Отмена», чтобы закрыть пользовательскую форму, она закроет пользовательскую форму.
Мы также можем закрыть Userform, используя метод «Hide» в VBA. Теперь еще раз, я дважды щелкну кнопку отмены, чтобы увидеть частную подпроцедуру.
Поскольку мы уже написали код для закрытия пользовательской формы, мы можем увидеть существующий код в VBA. Сейчас удалю это.
Чтобы использовать метод Hide, нам нужно вызвать пользовательскую форму по ее имени. В данном случае имя нашей пользовательской формы — «MyUserForm».
После упоминания пользовательской формы по ее имени, если мы поставим точку (.), Мы сможем увидеть все свойства и методы этой пользовательской формы. Теперь выберу метод «Скрыть».
Хорошо, давайте еще раз запустим пользовательскую форму. Мы увидим пустую пользовательскую форму, сначала заполните детали.
Разница между выгрузкой и скрытием в Excel VBA
У вас должен возникнуть вопрос, в чем разница между Unload & Hide, где оба служат одной цели. Между этими двумя есть разница. Теперь сначала я воспользуюсь оператором Unload Me. Посмотрите на изображение ниже.
Я ввел данные в пользовательскую форму, но еще не отправил их. Если я нажму «Отмена», пользовательская форма будет выгружена.
Теперь я снова пропущу код через горячая клавиша excel Сочетание клавиш Excel Ярлык Excel — это способ более быстрого выполнения ручной задачи. читать далее F5 или вручную, отобразится пустая пользовательская форма.
Несмотря на то, что я по ошибке ввел данные правильно, я нажал кнопку отмены, и когда снова появится новая форма пользователя, я заполнил данные с нуля.
Теперь воспользуюсь методом «Скрыть».
Нет, я нажму кнопку отмены. Он скроет видимую пользовательскую форму. Но когда я повторно запускаю макрос, он вернется с данными, которые я уже ввел в пользовательской форме.
Вот как мы можем использовать оператор «Выгрузить» и метод «Скрыть», чтобы закрыть пользовательскую форму в Excel VBA.
В этой заметке описываются методы создания пользовательских диалоговых окон, которые существенно расширяют стандартные возможности Excel. Диалоговые окна – это наиболее важный элемент пользовательского интерфейса в Windows. Они применяются практически в каждом приложении Windows, и большинство пользователей неплохо представляет, как они работают. Разработчики Excel создают пользовательские диалоговые окна с помощью пользовательских форм (UserForm). Кроме того, в VBA имеются средства, обеспечивающие создание типовых диалоговых окон.[1]
Рис. 1. Работа процедуры GetName
Перед тем как приступить к изучению тонкостей создания диалоговых окон на основе пользовательских форм, следует научиться использовать некоторые встроенные инструменты Excel, предназначенные для вывода диалоговых окон.
Использование окон ввода данных
Окно ввода данных — это простое диалоговое окно, которое позволяет пользователю ввести одно значение. Например, можно применить окно ввода данных, чтобы предоставить пользователю возможность ввести текст, число или диапазон значений. Для создания окна ввода предназначены две функции InputBox: одна— в VBA, а вторая является методом объекта Application.
Функция InputBox в VBA
Функция имеет следующий синтаксис:
InputBox(запрос [, заголовок] [, по_умолчанию] [, xpos] [, ypos] [, справка, раздел])
- Запрос. Указывает текст, отображаемый в окне ввода (обязательный параметр).
- Заголовок. Определяет заголовок окна ввода (необязательный параметр).
- По_умолчанию. Задает значение, которое отображается в окне ввода по умолчанию (необязательный параметр).
- xpos, ypos. Определяют координаты верхнего левого угла окна ввода на экране (необязательные параметры).
- Справка, раздел. Указывают файл и раздел в справочной системе (необязательные параметры).
Функция InputBox запрашивает у пользователя одно значение. Она всегда возвращает строку, поэтому результат нужно будет преобразовать в числовое значение. Текст, отображаемый в окне ввода, может достигать 1024 символов (длину допускается изменять в зависимости от ширины используемых символов). Если определить раздел справочной системы, то в диалоговом окне будет отображена кнопка Справка.
Обратите внимание: функция InputBox вызывается в цикле Do Until. Это позволяет убедиться в том, что данные введены в окно. Если пользователь щелкнет на кнопке Отмена или не введет текст, то переменная UserName будет содержать пустую строку, а окно ввода данных появится повторно. Далее в процедуре будет предпринята попытка получить имя пользователя путем поиска первого символа пробела (для этого применяется функция InStr). Таким образом, можно воспользоваться функцией Left для получения всех символов, расположенных слева от символа пробела. Если символ пробела не найден, то используется все введенное имя.
Если строка, предоставленная в качестве результата выполнения функции InputBox, выглядит как число, ее можно преобразовать с помощью функции VBA Val.
В процедуре GetWord пользователю предлагается ввести пропущенное слово (рис. 2). Этот пример также иллюстрирует применение именованных аргументов (р и t). Текст запроса выбирается из ячейки А1 рабочего листа.
Рис. 2. Использование функции VBA inputBox, отображающей запрос
Метод Excel InputBox
Метод Excel InputBox по сравнению с функцией VBA InputBox предоставляет три преимущества:
- возможность задать тип возвращаемого значения;
- возможность указать диапазон листа путем выделения с помощью мыши;
- автоматическая проверка правильности введенных данных.
Метод InputBox имеет следующий синтаксис.
InputBox(запрос, [, заголовок], [, по_умолчанию], [, слева], [, сверху], [, справка, раздел], [, тип])
- Запрос. Указывает текст, отображаемый в окне ввода (обязательный параметр).
- Заголовок. Определяет заголовок окна ввода (необязательный параметр).
- По_умолчанию. Задает значение, которое отображается в окне ввода по умолчанию (необязательный параметр).
- Слева, сверху. Определяют координаты верхнего левого угла окна ввода на экране (необязательные параметры).
- Справка, раздел. Указывают файл и раздел в справочной системе (необязательные параметры).
- Тип. Указывает код типа данных, который будет возвращаться методом (необязательный параметр; значения см. рис. 3).
Рис. 3. Коды типов данных, возвращаемые методом Excel InputBox
Используя сумму приведенных выше значений, можно возвратить несколько типов данных. Например, для отображения окна ввода, которое принимает текстовый или числовой тип данных, установите код равным 3 (1 + 2 или число + текст). Если в качестве кода типа данных применить значение 8, то пользователь сможет ввести в поле адрес ячейки или диапазона ячеек. Пользователь также можент выбрать диапазон на текущем рабочем листе.
В процедуре EraseRange используется метод InputBox. Пользователь может указать удаляемый диапазон (рис. 4). Адрес диапазона вводится в окно вручную, или выделяется мышью на листе. Метод InputBox с кодом 8 возвращает объект Range (обратите внимание на ключевое слово Set). После этого выбранный диапазон очищается (с помощью метода Clear). По умолчанию в поле окна ввода отображается адрес текущей выделенной ячейки. Если в окне ввода щелкнуть на кнопке Отмена, то оператор On Error завершит процедуру.
Рис. 4. Пример использования метода InputBox для выбора диапазона
Рис. 5. Метод InputBox автоматически проверяет вводимые данные
Функция VBA MsgBox
MsgBox(запрос[, кнопки][, заголовок][, справка, раздел])
Рис. 6. Константы и значения, используемые для выбора кнопок в функции MsgBox
Рис. 7. Константы, возвращаемые MsgBox
Функция MsgBox возвращает переменную, имеющую тип Integer. Вам необязательно использовать переменную для хранения результата выполнения функции MsgBox. Следующая процедура представляет собой вариацию процедуры GetAnswer.
В файле VBA msgbox.xlsm функция ContinueProcedure в демонстрационных целях представлена в виде процедуры. Функция ContinueProcedure может вызываться из другой процедуры. Например, оператор
If Not ContinueProcedure() Then Exit Sub
Метод Excel GetOpenFilename
Если приложению необходимо получить от пользователя имя файла, то можно воспользоваться функцией InputBox, но этот подход часто приводит к возникновению ошибок. Более надежным считается использование метода GetOpenFilename объекта Application, который позволяет удостовериться, что приложение получило корректное имя файла (а также его полный путь). Данный метод позволяет отобразить стандартное диалоговое окно Открытие документа, но при этом указанный файл не открывается. Вместо этого метод возвращает строку, которая содержит путь и имя файла, выбранные пользователем. По окончании данного процесса с именем файла можно делать все что угодно. Синтаксис (все параметры необязательные):
Application.GetOpenFilename(фильтр_файла, индекс_фильтра, заголовок, множественный_выбор)
- Фильтр_файла. Содержит строку, определяющую критерий фильтрации файлов (необязательный параметр).
- Индекс_фильтра. Указывает индексный номер того критерия фильтрации файлов, который используется по умолчанию (необязательный параметр).
- Заголовок. Содержит заголовок диалогового окна (необязательный параметр). Если этот параметр не указать, то будет использован заголовок Открытие документа.
- Множественный_выбор. Необязательный параметр. Если он имеет значение ИСТИНА, можно выбрать несколько имен файлов. Имя каждого файла заносится в массив. По умолчанию данный параметр имеет значение ЛОЖЬ.
Аргумент Фильтр_файла определяет содержимое раскрывающегося списка Тип файлов, находящегося в окне Открытие документа. Аргумент состоит из строки, определяющей отображаемое значение, а также строки действительной спецификации типа файлов, в которой находятся групповые символы. Оба элемента аргумента разделены запятыми. Если этот аргумент не указывать, то будет использовано значение, заданное по умолчанию: " Все файлы (*.*),*.* " . Первая часть строки Все файлы (*.*) – то текст, отображаемый в раскрывающемся списке тип файлов. Вторая часть строки *.* указывает тип отображаемых файлов.
В следующих инструкциях переменной Filt присваивается строковое значение. Эта строка впоследствии используется в качестве аргумента фильтр_файла метода GetOpenFilename. В данном случае диалоговое окно предоставит пользователю возможность выбрать один из четырех типов файлов (кроме варианта Все файлы). Если задать значение переменной Filt, то будет использоваться оператор конкатенации строки VBA. Этот способ упрощает управление громоздкими и сложными аргументами.
В следующем примере у пользователя запрашивается имя файла. При этом в поле типа файлов используются пять фильтров (код содержится в файле prompt for file.xlsm).
На рис. 11 показано диалоговое окно, которое выводится на экран после выполнения этой процедуры (по умолчанию предлагается фильтр *.csv).
Рис. 11. Метод GetOpenFilename отображает диалоговое окно, в котором выбирается файл
Обратите внимание: переменная FileName определена как массив переменного типа (а не как строка в предыдущем примере). Причина заключается в том, что потенциально FileName может содержать массив значений, а не только одну строку.
Метод Excel GetSaveAsFilename
Данный метод отображает диалоговое окно Сохранение документа и дает пользователю возможность выбрать (или указать) имя сохраняемого файла. В результате возвращается имя файла, но никакие действия не предпринимаются. Синтаксис (все параметры необязательные):
Application.GetSaveAsFilename(начальное_имя, фильтр_файла, индекс_фильтра, заголовок, текст_кнопки)
- Начальное_имя. Указывает предполагаемое имя файла.
- Фильтр_файла. Содержит критерий фильтрации отображаемых в окне файлов.
- Индекс_фильтра. Код критерия фильтрации файлов, который используется по умолчанию.
- Заголовок. Определяет текст заголовка диалогового окна.
Получение имени папки
Объект FileDialog позволяет определить начальную папку путем указания значения свойства InitialFileName. В примере в качестве начальной папки применяется путь к файлам Excel, заданный по умолчанию.
Отображение диалоговых окон Excel
Создаваемый вами код VBA может вызывать на выполнение многие команды Excel, находящиеся на ленте. И если в результате выполнения команды открывается диалоговое окно, ваш код может делать выбор в диалоговом окне (даже если само диалоговое окно не отображается). Например, следующая инструкция VBA эквивалентна выбору команды Главная –> Редактирование –> Найти и выделить –> Перейти и указанию диапазона ячеек А1:СЗ с последующим щелчком на кнопке ОК. Но само диалоговое окно Переход при этом не отображается (именно это и нужно).
Application.Goto Reference:=Range( " А1:СЗ " )
Иногда же приходится отображать встроенные окна Excel, чтобы пользователь мог сделать свой выбор. Для этого используется коллекция Dialogs объекта Application. Учтите, что в настоящее время компания Microsoft прекратила поддержу этого свойства. В предыдущих версиях Excel пользовательские меню и панели инструментов создавались с помощью объекта CommandBar. В версиях Excel 2007 и Excel 2010 этот объект по-прежнему доступен, хотя и работает не так, как раньше. Начиная с версии Excel 2007 возможности объекта CommandBar были существенно расширены. В частности, объект CommandBar можно использовать для вызова команд ленты с помощью VBA. Многие из команд, доступ к которым открывается с помощью ленты, отображают диалоговое окно. Например, следующая инструкция отображает диалоговое окно Вывод на экран скрытого листа (рис. 12; см. также файл ribbon control names.xlsm):
Рис. 12. Диалоговое окно, отображаемое в результате выполнения указанного выше оператора
Метод ExecuteMso принимает лишь один аргумент, idMso, который представляет элемент управления ленты. К сожалению, сведения о многих параметрах в справочной системе отсутствуют.
В результате выполнения следующего оператора отображается вкладка Шрифт диалогового окна Формат ячеек:
На самом деле пользоваться объектами CommandBar не стоит, поскольку вряд ли они будут поддерживаться в будущих версиях Excel.
Отображение формы ввода данных
Многие пользователи применяют Excel для управления списками, информация в которых ранжирована по строкам. В Excel поддерживается простой способ работы с подобными типами данных с помощью встроенных форм ввода данных, которые могут создаваться автоматически. Подобная форма предназначена для работы как с обычным диапазоном, так и с диапазоном, оформленным в виде таблицы (с помощью команды Вставка –> Таблицы –> Таблица). Пример формы ввода данных показан на рис. 13 (см. также файл data form example.xlsm).
Рис. 13. Некоторые пользователи предпочитают применять встроенные формы ввода данных Excel для ввода сведений; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке
В силу каких-то неизвестных причин на ленте Excel отсутствует команда, обеспечивающая доступ к форме ввода данных. Подобную команду можно добавить на панель быстрого доступа. Для этого выполните следующие действия.
- Щелкните правой кнопкой мыши на панели быстрого доступа и в контекстном меню выберите параметр Настройка панели быстрого доступа.
- На экране появится вкладка Панель быстрого доступа диалогового окна Параметры Excel.
- В раскрывающемся списке Выбрать команды из выберите параметр Команды не на ленте.
- В появившемся списке выберите параметр Форма.
- Щелкните на кнопке Добавить для добавления выбранной команды на панель быстрого доступа.
- Щелкните на кнопке ОК для закрытия диалогового окна Параметры Excel.
После выполнения перечисленных выше действий на панели быстрого доступа появится новый значок.
Для работы с формой ввода данных следует структурировать данные таким образом, чтобы Excel распознавал их в виде таблицы. Начните с указания заголовков столбцов в первой строке диапазона вводимых данных. Выделите любую ячейку в таблице и щелкните на кнопке Форма панели быстрого доступа. Excel отображает диалоговое окно, в котором будут вводиться данные. Для перемещения между текстовыми полями в целях ввода информации используйте клавишу . Если ячейка содержит формулу, результат вычислений отображается в виде текста (а не в формате поля ввода данных). Другими словами, невозможно изменить формулы с помощью формы ввода данных.
По завершении ввода данных в форму щелкните на кнопке Создать. После этого Excel вводит данные в строку рабочего листа, а также очищает диалоговое окно для ввода следующей строки данных.
Используйте метод ShowDataForm для отображения формы ввода данных Excel. Единственное требование заключается в том, что активная ячейка должна находиться в диапазоне. Следующий код активизирует ячейку А1 (в таблице), а затем отображает форму ввода данных.
When we make a userform it takes data as input from users, but the data is provided to the form doesn’t close itself, so it can mislead user to input data again, we use two different commands to close a userform when the input has been given and they are Unload me method to close a userform or we can use userform.hide method.
Excel VBA Close Userform
Userforms are vital while getting inputs from the user as part of the VBA project. We usually design the user form before we present it in front of the user. Once the designing of the VBA user form completes, we need to show up the same in front of the user and require VBA coding. Similarly, to close the user form, it requires VBA coding knowledge.
In this article, we will show you how to close the userform in VBA coding.
How to Close UserForm in Excel VBA?
Once the purpose of the user form is done, there is a point in keep showing the userform in front of the user, so we need to close the userform. We can close the userform by using the “Unload Me” statement and “UserForm.Hide” statements. Even though both are slightly different from each other, it will serve our purpose eventually.
For example, look at the below image of the userform.
I have named the user form as “MyUserForm.”
If I run the userform, we will see the userform like below.
I need to fill the required details. Once the information is filled in, if I click on the Submit button, it will capture the same data to the worksheet, which is visible on the left side.
Upon clicking the submit button, it has captured the data that I have entered in the userform.
If you notice, we have one more button called “Cancel.” What does this do?
Before we display the userform, we need to configure this button. Now I will go back basic visual editor to configure this button.
In this procedure, we need to write the VBA code Write The VBA Code VBA code refers to a set of instructions written by the user in the Visual Basic Applications programming language on a Visual Basic Editor (VBE) to perform a specific task. read more about what should happen if we click the Cancel button. When we click on this cancel button, it should close the User Form we are working on at the moment.
So, write the code as “Unload Me.”
Code:
“Unload Me” is the word we use to close the userform we are working on. Here user form recognizes the word “Me” as the UserForm itself.
“Unload Me” can be used only on that user form procedure. We cannot call this statement in other modules. If called, it will show the error message as “Invalid use of Me Keyword.”
Ok, let’s run the code using the F5 key or manually now, we will see a blank user form.
Fill the data and click on Submit.
Once the submit button clicked, it will store the values to the mentioned cells.
If the data entry is done, we need to close the userform. Isn’t it??
So, click on the Cancel button to close the userform, it will close the user form.
We can also close Userform using the “Hide” method as well in VBA. Now once again, I will double click on the cancel button to see the private subprocedure.
Since we have already written the code to close the userform, we can see the existing code in VBA. Now I will delete this.
To use the Hide method, we need to call the user form by its name. In this case, our user form name is “MyUserForm.”
After mentioning the user form by its name, if we put a dot (.), we can see all the properties and methods of this user form. Now I will select the “Hide” method.
Ok, let’s run the userform one more time. We will see a blank user form, fill the details first.
Now without a click on the Submit button, I will click the cancel button, it will hide the user form.
Difference Between Unload & Hide in Excel VBA
You must have a question what is the difference between Unload & Hide, where both serve a similar purpose. There is a difference between these two. Now first, I will use the Unload Me statement. Look at the below image.
I have entered the data in the user form but have not yet submitted it. If I click on Cancel, it will unload the userform.
Even though I have entered the data correctly by mistake, I have clicked on the cancel button, when the new user form appears again, I have filled the data from scratch.
Now I will use the “Hide” method.
No, I will click on the cancel button. It will hide the visible userform. But when I re-run the macro, it will come back with the data that I have already entered on the userform.
This is how we can use the “Unload” statement & “Hide” method to close the user form in Excel VBA.
Recommended Articles
This has been a guide to VBA Close UserForm. Here we learn how to close Userform using the “Unload Me” statement and “Userform.Hide” method in Excel VBA with some simple to advanced examples . Below are some useful excel articles related to VBA –
Читайте также: