Макросы Excel - Пользовательские формы

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

Основное преимущество UserForm заключается в том, что вы можете сэкономить время, которое вы тратите на то, что и как заполнять информацию.

Создание пользовательской формы

Чтобы создать UserForm, действуйте следующим образом -

  • Щелкните вкладку РАЗРАБОТЧИК на ленте.
  • Щелкните Visual Basic. Откроется окно Visual Basic для книги.
  • Нажмите "Вставить",
  • В раскрывающемся списке выберите UserForm.

Пользовательская форма появится в правой части окна.

Понимание пользовательской формы

Разверните окно UserForm.xlsx - UserForm1.

Вы находитесь в режиме дизайна. Вы можете вставить элементы управления в пользовательскую форму и написать код для соответствующих действий. Элементы управления доступны в ToolBox. Свойства UserForm находятся в окне «Свойства». UserForm1 (заголовок UserForm) находится в разделе Forms в Projects Explorer.

  • Измените заголовок UserForm на Project Report - Daily в окне свойств.
  • Измените имя UserForm на ProjectReport.

Изменения отражаются в UserForm, свойствах и проводнике проекта.

Элементы управления в ToolBox

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

Excel предоставляет два типа элементов управления - элементы управления формы и элементы управления ActiveX. Вы должны понимать разницу между этими двумя типами элементов управления.

Форма управления

Элементы управления формы - это оригинальные элементы управления Excel, совместимые с более ранними версиями Excel, начиная с версии Excel 5.0. Элементы управления формы также предназначены для использования на листах макросов XLM.

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

Элементы управления ActiveX

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

У вас есть следующие элементы управления ActiveX в UserForm ToolBox -

  • Pointer
  • Label
  • TextBox
  • ComboBox
  • ListBox
  • CheckBox
  • OptionButton
  • Frame
  • ToggleButton
  • CommandButton
  • TabStrip
  • MultiPage
  • ScrollBar
  • SpinButton
  • Image

В дополнение к этим элементам управления Visual Basic предоставляет вам функцию MsgBox, которую можно использовать для отображения сообщений и / или запроса действия пользователя.

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

этикетка

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

Example

Текстовое окно

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

Example

Окно списка

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

  • Вставьте ListBox в UserForm.
  • Щелкните ListBox.
  • Введите ProjectCodes в поле Name в окне свойств ListBox.

Есть три типа списков -

  • Single-selection List box- Поле списка с одним выбором позволяет выбрать только один вариант. В этом случае поле со списком напоминает группу переключателей, за исключением того, что с помощью списка можно более эффективно обрабатывать большое количество элементов.

  • Multiple selection List Box - Поле со списком множественного выбора позволяет выбрать один вариант или смежные (смежные) варианты.

  • Extended-selection List Box - Поле списка расширенного выбора позволяет выбрать один вариант, непрерывный выбор и несмежный (или несвязанный) выбор.

Вы можете выбрать один из этих типов списков в окне «Свойства».

  • Щелкните правой кнопкой мыши пользовательскую форму.
  • В раскрывающемся списке выберите Просмотреть код. Откроется окно кода UserForm.
  • Нажмите Инициализировать в правом верхнем поле окна кода.
  • Введите следующее в разделе Private Sub UserForm_Initialize ().
ProjectCodes.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5")
  • Щелкните вкладку Выполнить на ленте.
  • В раскрывающемся списке выберите Run Sub / UserForm.

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

Поле со списком

Вы можете использовать ComboBoxкоторый объединяет текстовое поле со списком для создания раскрывающегося списка. Поле со списком более компактно, чем поле со списком, но требует, чтобы пользователь щелкнул стрелку вниз, чтобы отобразить список элементов. Используйте поле со списком, чтобы выбрать только один элемент из списка.

  • Вставьте ComboBox в UserForm.
  • Щелкните ComboBox.
  • Type ProjectCodes2 for Name in the Properties window of the ComboBox.
  • Right click on the UserForm.
  • Select View Code from the dropdown list.
  • The code window of UserForm opens.

Type the following as shown below.

ProjectCodes2.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5")
  • Click the Run tab on the Ribbon.
  • Select Run Sub/UserForm from the dropdown list.

Click the down arrow to display the list of items.

Click on the required item, say, Project2016-5. The selected option will be displayed in the combo box.

CheckBox

You can use check boxes to select one or more options that are displayed by clicking in the boxes. The options will have labels and you can clearly visualize what options are selected.

A check box can have two states −

  • Selected (turned on), denoted by a tick mark in the box
  • Cleared (turned off), denoted by a clear box

You can use check boxes for selection of options in a combo box to save space. In such a case, the check box can have a third state also −

  • Mixed, meaning a combination of on and off states, denoted by a black dot in the box. This will be displayed to indicate multiple selections in the combo box with check boxes.

  • Insert check boxes in the UserForm as shown below.

  • Click the Run tab on the Ribbon.
  • Select Run Sub/UserForm from the dropdown list.
  • Click in the boxes for your selected options.

OptionButton

You can use an option button, also known as the radio button to make a single choice within a limited set of mutually exclusive choices. An option button is usually contained in a group box or a frame.

An option button is represented by a small circle. An option button can have one of the following two states −

  • Selected (turned on), denoted by a dot in the circle
  • Cleared (turned off), denoted by a blank

Frame

You can use a frame control, also referred to as a group box to group related controls into one visual unit. Typically, option buttons, check boxes or closely related contents are grouped in a frame control.

A frame control is represented by a rectangular object with an optional label.

  • Insert a frame with caption “Choice”.

  • Insert two option buttons with captions “Yes” and “No” in the frame control. The options Yes and No are mutually exclusive.

  • Click the Run tab on the Ribbon.
  • Select Run Sub/UserForm from the dropdown list.
  • Click on your selected option.

ToggleButton

You can use a toggle button to indicate a state, such as Yes or No, or a mode, such as on or off. The button alternates between an enabled and a disabled state when it is clicked.

Insert a toggle button on UserForm as shown below −

  • Click the Run tab on the Ribbon.

  • Select Run Sub/UserForm from the dropdown list. The toggle button will be in enabled state by default.

Click the toggle button. The toggle button will be disabled.

If you click the toggle button again, it will be enabled.

CommandButton

You can use a command button to run a macro that performs some actions when the user clicks on it. You have already learnt how to use a command button on a worksheet to run a macro.

Command button is also referred to as a push button. Insert a command button on the UserForm as shown below −

  • Right click on the command button.
  • Type the following code in the sub Commandbutton1_click ().
ProjectCodes2.DropDown
  • Click the Run tab on the Ribbon.
  • Select Run Sub/UserForm from the dropdown list.

Click the command button. The dropdown list of combo box opens, as it is the action that you have written in the code.

TabStrip

You can insert a tab strip that resembles Excel tabs on the UserForm.

ScrollBar

You can use a scroll bar to scroll through a range of values by clicking on the scroll arrows or by dragging the scroll box.

Insert a scroll bar on the UserForm by drawing it at the required position and adjust the length of the scroll bar.

  • Right click on the scroll bar.
  • Select View Code from the dropdown list. The Code window opens.
  • Add the following line under sub ScrollBar1_Scroll().
TextBox2.Text = "Scrolling Values"
  • Click the Run tab on the Ribbon.
  • Select Run Sub/UserForm from the dropdown list.

Drag the scroll box. The Text – Scrolling Values will be displayed in the text box as you specified it as the action for scroll bar scroll.

MsgBox ()

You can use the MsgBox () function to display a message when you click on something. It can be a guideline or some information or a warning or an error alert.

For example, you can display a message that values are being scrolled when you start scrolling the scroll box.

Message Box Icon Displays

You can use message-box icon displays that portray the specific message. You have the multiple message box icons to suit your purpose −

  • Type the following code under ScrollBar1_scroll.
MsgBox "Select Ok or Cancel", vbOKCancel, "OK  - Cancel Message" 
MsgBox "It's an Error!", vbCritical, "Run time result" 
MsgBox "Why this value", vbQuestion, "Run time result" 
MsgBox "Value Been for a Long Time", vbInformation, "Run time result" 
MsgBox "Oh Is it so", vbExclamation, "Run time result"
  • Click the Run tab on the Ribbon.
  • Select Run Sub/UserForm from the dropdown list.
  • Drag the scroll box.

You will get the following message boxes successively.

Designing UserForm

Now, you have an understanding of the different controls that you can use on a UserForm. Select the controls, group them if required and arrange them on the UserForm as per some meaningful sequence. Write the required actions as code corresponding to the respective controls.

Refer to the VBA tutorial in this tutorials library for an example of UserForm.