Как создавать пользовательские формы с использованием VBA в Excel

  1. Что мне нужно
  2. Что я буду изучать?
  3. Давайте начнем!
  4. Завершение

Visual Basic для приложений (VBA) - язык программирования продуктов Microsoft Office. Это позволяет программисту автоматизировать эти продукты. Например, вы можете написать код VBA, который позволяет пользователю просто нажать кнопку. Программа могла скрести несколько сайтов содержащий информация о запасах , Если определенный запас удовлетворяет установленному условию, программа может вывести эту информацию в хорошую сводную таблицу в Excel. Затем он может отправить определенные данные в PowerPoint. Затем код может взять графики, таблицы и т. Д., Которые были автоматически созданы в Excel, и создать слайд-колоду. Затем эту слайд-колоду можно отправить по электронной почте определенной группе пользователей в Outlook. Все это может быть полностью автоматизировано. Приложения VBA являются сногсшибательными, на самом деле, я автоматизировал мою работу с помощью VBA , На примере выше вы можете увидеть, насколько универсальным может быть VBA, особенно если у вас есть рутинные задачи, отчеты и / или данные, которые вы запускаете через любой продукт (ы) Microsoft Office.

Что мне нужно

Вам нужен только Microsoft Excel. Отличительной особенностью VBA является то, что вам не нужен отдельный редактор, редактор включен в Excel. Забавное место, с которого вы можете начать знакомство с VBA, - это создание пользовательских форм. Я выбрал пользовательскую форму как введение в VBA, потому что она показывает, как можно превратить скучную электронную таблицу Excel в графический интерфейс пользователя (GUI) с помощью кнопок, раскрывающихся списков и многого другого.

Что я буду изучать?

Вы узнаете, как создать пользовательскую форму в Microsoft Excel. UserForm полезен для бесчисленных приложений. Пользовательские формы могут быть использованы для создания списков продуктов, адресных книг, списков, списки дел и многое другое! Создание дружественного графического интерфейса, позволяет даже самому неграмотному пользователю компьютера выполнять задачи ввода данных, как эксперт. Резко увеличивая эффективность; устранение избыточности и ограничение записей только доступными опциями. Это залог успеха в любой задаче ввода данных.

Для этого урока я создал пользовательскую форму, которая позволяет разработчикам ссылок эффективно отслеживать просматриваемые ими сайты. большая часть поисковой оптимизации (SEO) включает в себя построение связей с качественными гостевыми постами , Отслеживание всех сайтов требует большой организации, следовательно, пользовательской формы. Конечно, не стесняйтесь настраивать его под свои нужды, это половина удовольствия и отличный способ учиться. Эта быстрая и простая пользовательская форма записывает веб-сайт, контактную информацию, тип ссылки, ранее добавленную опцию и любые заметки, которые может иметь пользователь. Пользовательская форма обеспечивает единообразие, а обязательные поля содержат текст. Кроме того, он позволяет беспрепятственно вводить данные и избавляет от необходимости перемещаться по ячейкам в электронной таблице, экономя время. Пользовательская форма направляет пользователя с необходимой информацией и ограничивает тип вводимых данных предварительно заданными параметрами. Пользовательская форма также гарантирует, что данные вводятся в правильном месте, и позволяет контролировать, какой формат, стиль и содержимое разрешены, создавая единообразие.

Давайте начнем!

Откройте Microsoft Excel.

Включите вкладку Разработчик, чтобы открыть редактор Visual Basic для приложений. Перейти к файлу (вверху слева от Excel).

Перейти к файлу (вверху слева от Excel)

Выберите «Опции» внизу.

Выберите «Опции» внизу

Выберите «Настроить ленту» в окне параметров Excel.

Выберите «Настроить ленту» в окне параметров Excel

В разделе «Основные вкладки» установите флажок «Разработчик». Нажмите ОК.

Нажмите ОК

Теперь вкладка «Разработчик» должна отображаться на ленте Microsoft Excel.

Теперь вкладка «Разработчик» должна отображаться на ленте Microsoft Excel

Чтобы получить доступ к редактору VBA, выберите вкладку «Разработчик» и нажмите кнопку Visual Basic (вверху слева). Кроме того, вы можете получить доступ к редактору, нажав ALT + F11 на клавиатуре.

В окне дерева файлов, в котором отображаются ваши проекты, выберите рабочую книгу, скорее всего, она будет помечена как VBAProject (Book1). Разверните проект и щелкните правой кнопкой мыши «ThisWorkbook», выберите «Вставить», затем выберите «UserForm».

UserForm и Toolbox будут отображены.

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

Измените размер пользовательской формы по желанию. На панели инструментов выберите элемент управления меткой (заглавная A).

На панели инструментов выберите элемент управления меткой (заглавная A)

Если вы не видите свою панель инструментов. Вы можете восстановить его снова, щелкнув значок Toolbox в верхней части редактора VBA.

Вы можете восстановить его снова, щелкнув значок Toolbox в верхней части редактора VBA

Выбрав элемент управления «Метка», нарисуйте любые нужные метки в пользовательской форме.

Выбрав элемент управления «Метка», нарисуйте любые нужные метки в пользовательской форме

Теперь добавьте TextBox (значок с надписью «ab |»).

Теперь добавьте TextBox (значок с надписью «ab |»)

Нарисуйте TextBox на вашей пользовательской форме.

Нарисуйте TextBox на вашей пользовательской форме

Теперь давайте добавим фрейм в нашу пользовательскую форму (значок представляет собой квадрат с XYZ сверху).

Теперь давайте добавим фрейм в нашу пользовательскую форму (значок представляет собой квадрат с XYZ сверху)

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

Мне нравится использовать фреймы, чтобы изолировать и пометить элемент управления

Вы можете переименовать заголовок рамки в окне свойств слева, а также множество других опций; как шрифты, изображения, цвета и многое другое - поиграйте!

Вы можете переименовать заголовок рамки в окне свойств слева, а также множество других опций;  как шрифты, изображения, цвета и многое другое - поиграйте

Теперь давайте добавим несколько OptionButtons в рамку.

Теперь давайте добавим несколько OptionButtons в рамку

Вы можете изменить заголовок так же, как вы сделали для фреймов.

Вы можете изменить заголовок так же, как вы сделали для фреймов

Вы также можете изменить порядок TabIndex в разделе Свойства. TabIndex начинается с 0. Когда пользователь нажимает клавишу Tab, фокус будет циклически перебирать TabIndex в соответствии с указанным вами порядком. Очень полезно, когда вы вводите данные.

Очень полезно, когда вы вводите данные

Теперь выберите CheckBox и нарисуйте его в пользовательской форме. Свойства можно настроить так же, как и другие элементы управления.

Свойства можно настроить так же, как и другие элементы управления

Нарисуйте еще один текстовый блок во фрейме «Заметки».

Нарисуйте еще один текстовый блок во фрейме «Заметки»

Затем выберите значок ScrollBar на панели инструментов.

Затем выберите значок ScrollBar на панели инструментов

Нарисуйте полосу прокрутки на правой стороне вашего нового TextBox.

Нарисуйте полосу прокрутки на правой стороне вашего нового TextBox

Далее мы можем добавить CommandButton. Выберите квадратный значок и нарисуйте CommandButton в пользовательской форме.

Выберите квадратный значок и нарисуйте CommandButton в пользовательской форме

Мы напишем код, который определяет, что делает CommandButton, а также другие элементы управления.

Мы напишем код, который определяет, что делает CommandButton, а также другие элементы управления

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

В разделе «Изображение» вы можете импортировать изображение в качестве фона

Выбрав группу ячеек в вашей электронной таблице, вы можете объединить ячейки, чтобы создать иллюзию графического интерфейса в вашей электронной таблице. Я решил сделать это и добавить синий цвет фона. Кроме того, я создал заголовок: «Веб-сайт», «Контакт», «Тип», «Внесенные ранее?» И «Примечания». Я также добавил границу вокруг этих ячеек и сделал текст жирным.

Я также добавил границу вокруг этих ячеек и сделал текст жирным

Теперь для кода! Щелкните правой кнопкой мыши пользовательскую форму и выберите «Просмотреть код», или вы можете нажать кнопку F7 на клавиатуре.

Щелкните правой кнопкой мыши пользовательскую форму и выберите «Просмотреть код», или вы можете нажать кнопку F7 на клавиатуре

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

Опция Явная закрытая подпрограмма CloseButton_Click () Выгрузить меня Завершить подпрограмму Закрытая подпрограмма OKButton_Click () 'Автор joshuabriansnow@gmail.com Dim NextRow As Long' Убедитесь, что Sheet1 активен Sheets ("Sheet1"). Активировать WebsiteField.Text = "" Тогда MsgBox "Вы должны войти на сайт." WebsiteField.SetFocus Exit Sub End If 'Убедитесь, что электронная почта введена If EmailField.Text = "" Тогда MsgBox "Вы должны ввести контакт." EmailField.SetFocus Exit Sub End If 'Определить следующую пустую строку NextRow = Application.WorksheetFunction.CountA (Range ("A: A")) + 4' Передать ячейки веб-сайта (NextRow, 1) = WebsiteField.Text 'Создать границу Ячейки вокруг ячейки (NextRow, 1) .Borders.LineStyle = xlContinuous 'Передача ячеек электронной почты (NextRow, 2) = EmailField.Text' Создание границы вокруг ячейки ячейки (NextRow, 2) .Borders.LineStyle = xlContinuous 'Передача ссылки type If OptionGuestPost Then Cells (NextRow, 3) = "Гостевая запись" If OptionResource Then Cells (NextRow, 3) = "Resource" Если OptionOther Then Cells (NextRow, 3) = "Other" 'Создать рамку вокруг ячейки Cells (NextRow , 3) .Borders.LineStyle = xlContinuous 'Передать ранее опубликованный статус, если CheckBox1 = True, то Cells (NextRow, 4) = "Yes", если CheckBox1 = False Then Cells (NextRow, 4) = "No"' Создать рамку вокруг ячейки Cells (NextRow, 4) .Borders.LineStyle = xlContinuous 'Передать заметки Cells (NextRow, 5) = NotesField.Text' Создать рамку вокруг ячейки Cell (NextRow, 5). Borders.LineStyle = xlContinuous 'Очистить элементы управления для следующей записи WebsiteField.Text = "" EmailField.Text = "" OptionGuestPost = True WebsiteField.SetFocus CheckBox1 = False NotesField.Text = "" End Sub

Вы можете разместить кнопку в вашей электронной таблице, которая при щелчке вызовет вашу пользовательскую форму. Выберите вкладку «Разработчик» на ленте. Выберите «Вставить», затем под «Элементами управления» добавьте кнопку.

Выберите «Вставить», затем под «Элементами управления» добавьте кнопку

Вы можете нарисовать кнопку на электронной таблице, она попросит вас назначить макрос.

Вы можете нарисовать кнопку на электронной таблице, она попросит вас назначить макрос

Вы все сделали! Обязательно сохраните как книгу с поддержкой макросов.

Обязательно сохраните как книгу с поддержкой макросов

Завершение

Мы говорили о том, как настроить редактор в Excel. Основан на нескольких популярных элементах управления, доступных в пользовательских формах. Мы также просмотрели некоторые параметры в меню «Свойства» и узнали, как собрать все это вместе.

VBA очень универсален и, конечно, не ограничивается пользовательскими формами. Помните, когда я привел пример очистки веб-сайтов для информации о запасах? Вы можете взять тот же пример немного дальше. Возможно, вы могли бы создать UserForm с CheckBoxes нескольких различных акций. Вы можете написать некоторый код VBA, чтобы сказать Excel, чтобы он брал текущую котировку акций только тех акций, которые были проверены, и отправлял электронным письм определенным людям, если акции растут или падают в заданные моменты. Возможности бесконечны, даже на ходу, вы можете запустить Excel через ваш смартфон ,

Вы (надеюсь) завершили этот урок с рабочим примером пользовательской формы! Прекрасная работа! Я надеюсь, что этот урок пробудит у вас интерес к VBA. Вы можете действительно произвести впечатление на рабочем месте, когда вы начнете автоматизировать! Возможно, вы даже можете автоматизировать свою работу или ее часть, освобождая время для написания подобных статей. Вы (надеюсь) завершили этот урок с рабочим примером пользовательской формы

Что я буду изучать?
Кроме того, я создал заголовок: «Веб-сайт», «Контакт», «Тип», «Внесенные ранее?
Помните, когда я привел пример очистки веб-сайтов для информации о запасах?