Как удалить userform в vba excel

Обновлено: 05.07.2024

Создайте или откройте файл Excel с расширением .xlsm (Книга Excel с поддержкой макросов) или с расширением .xls в старых версиях приложения.

Перейдите в редактор VBA, нажав сочетание клавиш «Левая_клавиша_Alt+F11».

В открывшемся окне редактора VBA выберите вкладку «Insert» главного меню и нажмите кнопку «UserForm». То же подменю откроется при нажатии на вторую кнопку (после значка Excel) на панели инструментов.


На экране редактора VBA появится новая пользовательская форма с именем «UserForm1»:


Добавление элементов управления

Обычно вместе с пользовательской формой открывается панель инструментов «Toolbox», как на изображении выше, с набором элементов управления формы. Если панель инструментов «Toolbox» не отобразилась, ее можно вызвать, нажав кнопку «Toolbox» во вкладке «View»:


При наведении курсора на элементы управления появляются подсказки.

Найдите на панели инструментов «Toolbox» элемент управления с подсказкой «TextBox», кликните по нему и, затем, кликните в любом месте рабочего поля формы. Элемент управления «TextBox» (текстовое поле) будет добавлен на форму.

Найдите на панели инструментов «Toolbox» элемент управления с подсказкой «CommandButton», кликните по нему и, затем, кликните в любом месте рабочего поля формы. Элемент управления «CommandButton» (кнопка) будет добавлен на форму.

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


Нажатием клавиши «F4» вызывается окно свойств, с помощью которого можно вручную задавать значения свойств пользовательской формы и элементов управления. В окне свойств отображаются свойства выбранного элемента управления или формы, если выбрана она. Также окно свойств можно вызвать, нажав кнопку «Properties Window» во вкладке «View».

Отображение формы на экране

Чтобы запустить пользовательскую форму для просмотра из редактора VBA, необходимо выбрать ее, кликнув по заголовку или свободному от элементов управления полю, и совершить одно из трех действий:

  • нажать клавишу «F5»;
  • нажать на треугольник на панели инструментов (на изображении выше треугольник находится под вкладкой «Debug»);
  • нажать кнопку «Run Sub/UserForm» во вкладке «Run».

Для запуска пользовательской формы с рабочего листа Excel, можно использовать кнопки, описанные в этой статье. Например, чтобы отобразить форму с помощью «кнопки – элемента ActiveX», используйте в модуле рабочего листа следующий код:


Ранее мы обсуждали, как создать пользовательскую форму в VBA. Теперь для получения ввода от пользователя была кнопка для отправки, в которой затем сохранялось значение, указанное пользователем в листе Excel. Но что после придания значения, форма все еще там. Или что делать, если пользователь не хочет предоставлять какие-либо данные и закрывать форму пользователя. Мы не обсуждали, как мы закроем пользовательскую форму для пользователя. Аналогично кнопке отправки для отправки данных у нас была другая кнопка, которая была для отмены, которая используется для скрытия пользовательской формы. Кнопка отмены также имеет свой собственный код, чтобы скрыть пользовательскую форму от пользователя. Теперь есть два метода, с помощью которых мы можем скрыть пользовательскую форму. Они заключаются в следующем:

  1. Первый метод - когда мы используем метод Unload Me. Этот метод выгружает пользовательскую форму и исчезает с дисплея.
  2. Другой метод, когда мы используем метод Useform.Hide. Этот метод скрывает пользовательскую форму от дисплея.

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

Как закрыть UserForm в Excel VBA?

Мы узнаем о том, как закрыть UserForm в Excel VBA с его различием, и на нескольких примерах, но сначала давайте изучим способ закрытия пользовательской формы в VBA.

Есть два способа закрыть пользовательскую форму в VBA:

Во-первых, давайте попробуем метод закрытия UserForm, используя опцию Unload Me. У нас была пользовательская форма в нашей предыдущей статье, которая выглядит как приведенная ниже.


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

Код:


Кнопка «Отмена» была второй командной кнопкой, которую мы предоставили пользовательской форме. Теперь напишите оператор кода как Unload me в разделе, как показано на рисунке ниже.

Код:


Мы можем видеть, что Me является оператором Object of Unload. Теперь давайте запустим пользовательскую форму, нажав клавишу F5, чтобы отобразить ее.


Excel VBA Закрыть UserForm - Пример № 2

Теперь давайте попробуем второй метод, метод userform.hide, аналогичный описанному выше, во-первых, давайте откроем форму пользователя из формы пользователя в окне проекта.


Теперь дважды нажмите кнопку отмены, которая откроет код просмотра для кнопки отмены.


У нас уже есть оператор Unload Me, присутствующий в кнопке отмены, очистите код и замените его на оператор Userform.Hide .

Код:


Теперь давайте снова запустим пользовательскую форму, нажав клавишу F5, и отобразим ее на экране.


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

Excel VBA Закрыть UserForm - Пример № 3

Теперь давайте перейдем к первому методу Unload Me оператора для кнопки отмены и предоставим некоторые данные для пользовательской формы. Дважды щелкните на кнопке отмены в пользовательской форме, чтобы открыть код представления для командной кнопки и заменить код оператором Unload Me, как показано ниже.

Код:


Теперь снова запустите пользовательскую форму, нажав клавишу F5, и отобразите ее на экране.


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


Снова запустите пользовательскую форму, нажав клавишу F5.


Теперь мы можем видеть, что мы потеряли данные, которые мы предоставили пользовательской форме, так как мы не предоставили ее, она не была сохранена на рабочем листе, и мы закрыли пользовательскую форму с помощью оператора Unload Me, который удалил уже заполненные данные.

Excel VBA Закрыть UserForm - Пример № 4

Теперь давайте сделаем то же самое упражнение, но с помощью оператора Userform.Hide,

В командной кнопке отмены замените код, используя метод userform.hide, как показано ниже.

Код:


Теперь мы снова запустим пользовательскую форму, нажав клавишу F5, и предоставим ей некоторые данные следующим образом.


Теперь давайте нажмем кнопку отмены и снова запустим пользовательскую форму, которая даст нам следующий результат.



Теперь данные сохранены, пользовательская форма теперь пуста, и мы можем закрыть пользовательскую форму, используя кнопку отмены,


В Excel VBA у нас есть очень полезный инструмент, который называется UserForm. Это практичный способ получения информации от пользователя. Что такое пользовательская форма в VBA? UserForm похож на окно мастера или диалоговое окно, в которое мы просим пользователей вводить данные, и в нем есть некоторые инструкции.

VBA UserForm также встроен в Excel и может быть создан разработчиками. Чтобы использовать пользовательскую форму VBA, сначала нам нужно активировать вкладку разработчика на вкладке «Параметры». Как только вкладка разработчика активирована, мы можем перейти в Excel VBA и создать пользовательские формы. Пользовательские формы используются для хранения данных в Excel. Это можно сравнить с формами Google, где у нас есть определенный набор инструкций и мы просим пользователя ввести данные в соответствии с инструкциями.

UserForm широко используется повсеместно. В UserForm введенные пользователем данные сохраняются в соответствующем столбце. Это самый практичный способ в Excel получить информацию от пользователя и сохранить данные в Excel относительно в правильном месте.

Как создать пользовательскую форму в Excel VBA?

Ниже приведены различные примеры создания пользовательской формы в Excel с использованием кода VBA.

Вы можете скачать этот шаблон VBA UserForm Excel здесь - шаблон VBA UserForm Excel

Excel VBA UserForm - Пример № 1

Во-первых, давайте перейдем к основам пользовательской формы. Как просмотреть пользовательскую форму и что такое пользовательская форма.

  • В рабочем листе Excel перейдите на вкладку Разработчик и щелкните редактор Visual Basic.


  • Теперь, как нам добавить пользовательскую форму на этот пустой экран? В инструменте вставки щелкните UserForms.


  • Откроется новое окно мастера, и оно пустое, что является нашей пустой формой пользователя.


  • В настоящее время он называется userform1, поскольку мы не дали ему никакого имени. Мы можем сделать это, изменив его имя в опции свойств в левой части экрана.


  • Давайте изменим имя на образец формы и посмотрим результат.


Наша пользовательская форма теперь называется образцом.

  • Теперь давайте попробуем изменить цвет пользовательской формы. В панели инструментов свойств у нас есть выпадающий список, названный как цвет спины, мы можем выбрать любой набор цветов, который мы хотим.


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


  • Как мы запускаем эту форму пользователя? Убедитесь, что мы нажали на саму пользовательскую форму и нажмите кнопку запуска, показанную на скриншоте ниже. Когда мы нажимаем кнопку запуска, мы видим, что на экране Excel появляется пустая форма.

У него нет других вариантов, кроме как закрыть его, потому что мы не добавили к нему никаких других кнопок.

Excel VBA UserForm - Пример № 2

Давайте посмотрим, как добавить кнопки в пользовательскую форму для ввода данных в Excel VBA. Мы сделаем простую пользовательскую форму VBA, в которой мы попросим пользователя ввести его имя, возраст и пол. Этапы создания такой пользовательской формы следующие.

  • В рабочем листе Excel перейдите на вкладку разработчика и нажмите на редактор Visual Basic.


  • Теперь на вкладке вставки нажмите на пользовательскую форму, чтобы открыть окно пользовательской формы.


  • Нам нужно добавить кнопки в эту форму пользователя, чтобы получить ввод от пользователя. Мы видим, что панель инструментов также открыта рядом с нашей пользовательской формой, которая имеет кнопки управления.


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

  • Так что для нашего примера нам нужно, чтобы имя, возраст и пол были введены пользователем. Нам в основном нужны три метки, которые будут представлять наши инструкции. Нажмите на ярлыки .


  • Наведите указатель мыши на форму пользователя, щелкните и перетащите, чтобы вставить метку в форму пользователя.


  • В настоящее время он назван как метка 1, нам нужно изменить имя метки на « Имя » для инструкции для пользователя. Нажмите на ярлык и удалите предоставленное имя по умолчанию и вставьте новое имя.


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


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


  • Наведите указатель мыши на ярлыки и нажмите на форму.


  • Теперь давайте вставим командную кнопку в форму пользователя, которая будет хранить данные для нас. Из элементов управления панели инструментов нажмите CommandButton .




  • Вставьте одну кнопку CommandButton и назовите ее « Отмена ».


  • Следующий шаг - переименовать каждое из текстовых полей, чтобы мы могли легко использовать их в наших кодах. Для имени переименуйте текстовое поле для него как Nameva для значения имени и для age как Ageva для пола аналогично Genderva для значения пола,


  • Запустите пользовательскую форму, нажав на кнопку воспроизведения или нажав клавишу F5.
  • В листе Excel запишите заголовок для данных следующим образом.


  • Дважды щелкните по кнопке отправки, которая откроет нам окно кода для кнопки отправки следующим образом.

Код:


  • В окне кода объявите переменную, как показано ниже.

Код:


  • Теперь давайте переместим первую свободную ячейку в первом столбце со следующим кодом.

Код:


  • Давайте сохраним значение, предоставленное пользователем в листе с помощью следующего кода.

Код:


  • Теперь дважды нажмите на кнопку «Отмена», это также покажет вам имя автоматического макроса, как это.

Код:


Код:


  • Запустите пользовательскую форму с помощью кнопки запуска или нажатием клавиши F5, и мы получим следующий результат.


  • Введите значения в текстовые поля следующим образом.


Вот как мы создаем форму пользователя для получения данных от пользователя.

То, что нужно запомнить

  • Пользовательские формы встроены или могут быть созданы разработчиком в VBA.
  • Свойства пользовательской формы можно изменить в окне мастера свойств в VBA.
  • Пользовательские формы должны иметь кнопки для получения данных от пользователя.
  • Для запуска пользовательской формы убедитесь, что пользовательская форма выбрана.

Рекомендуемые статьи

Это руководство по VBA UserForm. Здесь мы обсудим, как создать пользовательскую форму в Excel, используя код VBA, а также некоторые практические примеры и загружаемый шаблон Excel. Вы также можете просмотреть наши другие предлагаемые статьи -


Копирование, вставка, вырезание, удаление, вставка - это некоторые из общих операций, используемых для выполнения в Excel. Самый простой способ сделать это, используя сочетания клавиш или встроенные функции. Но когда вы хотите выполнить операцию в один клик или автоматически, VBA является решением. Мы можем автоматизировать эти задачи, используя макросы Excel. VBA также предоставляет различные методы, аналогичные функциям Excel. Это выполняет эти задачи плавно в VBA.

Метод удаления столбцов используется для удаления одного или нескольких столбцов в Excel VBA. Свойство delete для столбцов используется вместе с индексом столбца.

Синтаксис для удаления столбца в Excel VBA

Синтаксис для удаления столбца в Excel, как показано ниже.

  • Где ссылка на столбец - это номер столбца, который вы хотите удалить.
  • Столбцы ((RowIndex), ColumnIndex)) здесь диапазон столбцов также принимается.


Как удалить столбец в Excel с помощью VBA?

Мы узнаем, как удалить столбец в VBA, с несколькими примерами в Excel.

Вы можете скачать этот шаблон Excel VBA Удалить столбец здесь - VBA Удалить шаблон Excel столбца

VBA Удалить столбец - Пример № 1

Из базы данных посещаемости указывается время отъезда в офис для некоторых сотрудников. Это данные, собранные за одну неделю, с понедельника по пятницу.


Мы хотим удалить столбец пятница.

Выполните следующие шаги, чтобы удалить столбец в Excel.

Шаг 1: Итак, сначала мы можем создать простую функцию как delete (), поскольку delete - это ключевое слово, которое не является предпочтительным.

Код:


Шаг 2: Теперь давайте использовать свойство columns.

Код:


В столбцах () упоминается «6», поскольку указанный столбец является 6- м столбцом в таблице.

Шаг 3: Запустите этот код, нажав F5 или кнопку Run, и посмотрите результат.

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


VBA Удалить столбец - Пример № 2

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


Выполните следующие шаги, чтобы удалить столбец в Excel с помощью VBA.

Шаг 1: Поскольку пятница - это столбец F, укажите адрес столбца, как показано ниже в коде.

Код:


При использовании алфавита не забудьте поставить алфавит в двойных кавычках.

Шаг 2: Запустите этот код, нажав F5 или кнопку Run, и посмотрите результат.

Это удалит столбец пятница из таблицы.

VBA Удалить столбец - Пример № 3

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

Выполните следующие шаги, чтобы удалить последние два столбца в Excel.

Шаг 1: Код можно изменить, как показано ниже.

Код:


Диапазон указан как «E: F», и это приведет к удалению столбца от F до G.

Шаг 2: Запустите этот код, нажав F5 или кнопку Run, и посмотрите результат.

Последние два столбца удалены.

VBA Удалить столбец - Пример № 4

Посмотрим, что будет, если мы удалим средние столбцы в таблице.

Выполните следующие шаги, чтобы удалить средние столбцы в таблице.

Шаг 1: Код можно изменить, как показано ниже.

Код:


Здесь «B: C» относится к колонке понедельник и вторник.

Шаг 2: Запустите этот код, нажав F5 или кнопку Run, и посмотрите результат.

После запуска кода, если вы проверите таблицу, вы можете увидеть столбец после смещения «B: C» справа налево.

VBA Удалить столбец - Пример № 5

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

На двух листах содержатся сведения о сотрудниках за два месяца, январь и февраль. Поскольку на одном листе имеется более одного листа, чтобы избежать ошибок, лучше указать имя листа.

Выполните следующие шаги, чтобы удалить столбец в Excel с помощью VBA.

Шаг 1: лист должен быть выбран с помощью кода.

Код:


Шаг 2: Теперь нужно указать код для удаления столбца.

Код:


Шаг 3: Запустите этот код, нажав F5 или кнопку Run, и посмотрите результат.

Будет выбран лист «Jan», а столбцы B, C, т.е. понедельник, вторник, будут удалены из таблицы.

Удаление нескольких столбцов с использованием объекта диапазона в VBA

Объект диапазона также используется для удаления столбца в VBA вместо удаления столбца. Если используется объект диапазона, код будет выглядеть так, как показано ниже.


Диапазон («B: C») представляет собой диапазон столбцов, который необходимо удалить.

Удаление одного столбца с использованием объекта диапазона

Чтобы удалить один столбец с использованием объекта диапазона, необходимо указать диапазон, как показано ниже.


Диапазон («B: B») указывает на один столбец, и он будет удален.

То, что нужно запомнить

  • Столбец может быть указан с помощью номера столбца или соответствующего алфавита при удалении.
  • При удалении нескольких столбцов номера не будут приняты в качестве ссылки на столбец.
  • Вместо свойства столбцов можно использовать объект Range для удаления столбца в VBA.

Рекомендуемые статьи

Это руководство по удалению столбца VBA. Здесь мы обсудили, как удалить столбец в Excel с помощью VBA, а также с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

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