Excel宏 - UserForms

有时,您可能不得不反复收集其他人的信息. Excel VBA为您提供了一种处理此任务的简便方法 -   UserForm .与您填写的任何其他表单一样,UserForm使其易于理解,将提供哪些信息. UserForm是用户友好的,提供的控件是不言自明的,并在必要时附加说明.

UserForm的主要优点是你可以节省你花在什么上的时间以及如何填写信息.

创建用户窗体

要创建用户窗体,请按以下步骤进行 :

  • 单击功能区上的DEVELOPER选项卡.

  • 单击Visual Basic.将打开工作簿的Visual Basic窗口.

  • 单击插入,

  • 从下拉列表中选择UserForm.

创建用户窗体

用户窗体出现在窗口的右侧.

UserForm Appears

了解UserForm

最大化UserForm.xlsx  -  UserForm1窗口.

您现在处于设计模式.您可以在UserForm上插入控件并为相应的操作编写代码.控件在ToolBox中可用. UserForm的属性位于"属性"窗口中. UserForm1(UserForm的标题)在Projects Explorer中的Forms下给出.

Understanding UserForm

  • 在属性窗口中将UserForm的标题更改为Project Report  -  Daily.

  • 更改名称UserForm到ProjectReport.

ProjectReport

更改将反映在UserForm,属性和项目资源管理器中.

ToolBox中的控件

UserForm将具有不同的组件.当您点击任何组件时,您将获得有关提供信息的方式和方式的说明,或者您将获得可供选择的选项(选项).所有这些都是通过UserForm的ToolBox中的ActiveX控件提供的.

Excel提供了两种类型的控件 - 表单控件和ActiveX控件.您需要了解这两种控件之间的区别.

表单控件

表单控件是与早期版本兼容的Excel原始控件Excel,从Excel 5.0开始.表单控件也设计用于XLM宏表.

您可以使用表单控件运行宏.您可以将现有宏分配给控件,或者写入或记录新宏.单击控件时,宏.您已经学习了如何从工作表中的窗体控件插入命令按钮来运行宏.但是,这些控件无法添加到UserForm.

ActiveX控件

可以在VBA UserForms上使用ActiveX控件. ActiveX控件具有广泛的属性,可用于自定义其外观,行为,字体和其他特征.

UserForm工具箱中有以下ActiveX控件 :

  • 指针

  • 标签

  • TextBox

  • ComboBox

  • ListBox

  • CheckBox

  • OptionButton

  • 框架

  • ToggleButton

  • CommandButton

  • TabStrip

  • MultiPage

  • ScrollBar

  • SpinButton

  • 图像

除了这些控件之外,Visual Basic还为您提供了MsgBox函数,可用于显示消息和/或提示用户执行操作.

在接下来的几个中部分,您将了解这些控件和MsgBox.然后,您将可以选择设计UserForm需要哪些控件.

标签

您可以使用标签进行识别目的是显示描述性文字,例如标题,标题和/或简要说明.

示例

标签

TextBox

您可以使用矩形框的TextBox来键入,查看或编辑文本.您还可以将TextBox用作呈现只读信息的静态文本字段.

示例

TextBox

列表框

您可以使用列表框显示列表用户可以选择的一个或多个文本项.使用列表框显示大量不同数量或内容的选项.

  • 在UserForm上插入一个ListBox.

  • 单击ListBox.

  • 在ListBox的"属性"窗口中键入名称的ProjectCodes.

有三种类型的列表框和减号;

  • 单选列表框 : 单选列表框只能选择一个.在这种情况下,列表框类似于一组选项按钮,但列表框可以更有效地处理大量项目.

  • 多选列表框 : 多选列表框可以选择一个选项或连续(相邻)选项.

  • 扩展选择列表框 : 扩展选择列表框允许一个选择,连续选择和不连续(或脱节)选择.

您可以选择其中一种类型列表框,从属性窗口.

ListBox

  • 右键单击UserForm.

  • 从下拉列表中选择View Code. UserForm的代码窗口打开.

  • 单击代码窗口右上角的"初始化".

  • 在Private Sub UserForm_Initialize()下键入以下内容.

 ProjectCodes.List = Array("Proj2016-1","Proj2016-2","Proj2016 -3","Proj20164","Proj2016-5")


初始化

  • 单击功能区上的"运行"选项卡.

  • 从下拉列表中选择Run Sub/UserForm.

选择运行

接下来,您可以编写有关选择列表中项目的操作的代码.否则,您只需显示所选文本,即填写报告中的项目代码.

ComboBox

您可以使用 ComboBox 组合文本框和列表框以创建下拉列表框.组合框比列表框更紧凑,但要求用户单击向下箭头以显示项目列表.使用组合框从列表中只选择一个项目.

  • 在UserForm上插入一个ComboBox.

  • 单击ComboBox.

  • 在ComboBox的"属性"窗口中键入ProjectCodes2作为Name.

ComboBox

  • 右键单击UserForm.

  • 从下拉列表中选择查看代码.

  • 打开UserForm的代码窗口.

键入以下内容,如下所示.

ProjectCodes2.List = Array("Proj2016-1","Proj2016-2","Proj2016" -3","Proj20164","Proj2016-5")


代码窗口

  • 单击功能区上的"运行"选项卡.

  • 从下拉列表中选择Run Sub/UserForm.

运行选项卡

单击向下箭头以显示项目列表.

单击向下箭头

单击所需项目,例如Project2016-5.选定的选项将显示在组合框中.

必填项

CheckBox

您可以使用复选框选择一个或多个通过单击框显示的选项.选项将有标签,您可以清楚地看到选择的选项.

复选框可以有两个状态 :

  • 选中(打开),框中带刻度标记

  • 清除(关闭),用清除框表示

您可以使用复选框选择组合框中的选项以节省空间.在这种情况下,复选框也可以具有第三个状态 :

  • 混合,表示on和的组合关闭状态,用方框中的黑点表示.这将显示以指示组合框中的多个选项和复选框.

  • 在UserForm中插入复选框,如下所示.

CheckBox

  • 单击功能区上的"运行"选项卡.

  • 从下拉列表中选择"运行Sub/UserForm".

  • 单击所选选项的框.

Boxes

OptionButton

您可以使用选项按钮(也称为单选按钮)在一组有限的互斥选项中进行单项选择.选项按钮通常包含在组框或框架中.

选项按钮由小圆圈表示.选项按钮可以具有以下两种状态之一 :

  • 选中(打开),用圆圈中的点表示

  • 清除(关闭),用空白表示

框架

您可以使用帧控件(也称为组框)将相关控件分组到一个可视单元中.通常,选项按钮,复选框或密切相关的内容在帧控件中分组.

框架控件由带有可选标签的矩形对象表示.

  • 插入标题为"选择"的框架.

  • 插入两个选项按钮框控件中带有"是"和"否"的标题.选项Yes和No是互斥的.

Frame

  • 单击功能区上的"运行"选项卡.

  • 从下拉列表中选择"运行Sub/UserForm" .

  • 点击您选择的选项.

选择选项

ToggleButton

您可以使用切换按钮来指示状态,例如是或否,或模式,例如打开或关闭.单击按钮时按钮在启用和禁用状态之间切换.

在UserForm上插入一个切换按钮,如下所示 :

TogglebButton

  • 单击功能区上的"运行"选项卡./p>

  • 从下拉列表中选择Run Sub/UserForm.默认情况下,切换按钮将处于启用状态.

默认

单击切换按钮.切换按钮将被禁用.

切换按钮

如果单击再次切换按钮,它将被启用.

CommandButton

您可以使用命令按钮运行宏,该宏在用户执行某些操作点击它.您已经学习了如何使用工作表上的命令按钮来运行宏.

命令按钮也称为按钮.在UserForm上插入一个命令按钮,如下所示 :

CommandButton

  • 右键单击命令按钮.

  • 在子Commandbutton1_click()中键入以下代码.

ProjectCodes2.DropDown


CommandButton1

  • 单击功能区上的"运行"选项卡.

  • 从下拉列表中选择Run Sub/UserForm.

每日报告

单击命令按钮.组合框的下拉列表打开,因为它是您在代码中编写的操作.

Combo框

TabStrip

您可以在UserForm上插入类似于Excel标签的标签条.

ScrollBar

您可以使用滚动条滚动浏览一系列值,方法是单击滚动箭头或拖动滚动框.

插入滚动条UserForm上的栏,在所需位置绘制并调整滚动条的长度.

ScrollBar

  • 右键单击滚动条.

  • 从下拉列表中选择查看代码.代码窗口打开.

  • 在子ScrollBar1_Scroll()下添加以下行.

TextBox2.Text = "Scrolling Values"


滚动值

  • 单击功能区上的"运行"选项卡.

  • 从下拉列表中选择Run Sub/UserForm.

ScrollBar报告

拖动滚动框.文本 - 滚动值将显示在文本框中,因为您将其指定为滚动条滚动的操作.

文本框

MsgBox()

您可以使用MsgBox()函数在单击某些内容时显示消息.它可以是指南或某些信息或警告或错误警报.

例如,当您开始滚动滚动框时,可以显示正在滚动值的消息.

MsgBox功能

消息框图标显示

您可以使用描绘特定邮件的消息框图标显示.您有多个消息框图标,以满足您的目的 :

  • 在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"

  • 单击"运行"选项卡功能区.

  • 从下拉列表中选择Run Sub/UserForm.

  • 拖动滚动框.

您将连续获得以下消息框.

消息框

设计用户窗体

现在,您已了解了不同的控件在UserForm上使用.选择控件,根据需要对它们进行分组,并按照一些有意义的顺序将它们排列在UserForm上.将所需的操作编写为与相应控件对应的代码.

有关UserForm的示例,请参阅本教程库中的VBA教程.