Excel 宏 – 用户窗体
Excel 宏 – 用户窗体
有时,您可能需要反复从他人那里收集信息。Excel VBA 为您提供了一种处理此任务的简单方法 – UserForm。与您填写的任何其他表格一样,UserForm 使您可以轻松理解要提供的信息。UserForm 是用户友好的,其提供的控件是不言自明的,并在必要时附有附加说明。
UserForm 的主要优点是您可以节省花费在填写信息的内容和方式上的时间。
创建用户表单
要创建用户窗体,请按以下步骤操作 –
- 单击功能区上的开发人员选项卡。
- 单击 Visual Basic。工作簿的 Visual Basic 窗口打开。
- 点击插入,
- 从下拉列表中选择用户窗体。
用户窗体出现在窗口的右侧。
理解用户表单
最大化 UserForm.xlsx – UserForm1 窗口。
您现在处于设计模式。您可以在用户窗体上插入控件并为相应的操作编写代码。控件在工具箱中可用。UserForm 的属性位于“属性”窗口中。UserForm1(UserForm 的标题)在 Projects Explorer 的 Forms 下给出。
- 在属性窗口中将 UserForm 的标题更改为 Project Report – Daily。
- 将用户窗体的名称更改为 ProjectReport。
更改反映在用户窗体、属性和项目浏览器中。
工具箱中的控件
用户窗体将具有不同的组件。当您单击任何组件时,您将获得有关信息提供内容和方式的说明,或者您将获得可供选择的选项(选择)。所有这些都是通过用户窗体工具箱中的 ActiveX 控件提供的。
Excel 提供两种类型的控件——表单控件和 ActiveX 控件。您需要了解这两种控件之间的区别。
表单控件
表单控件是与早期版本的 Excel 兼容的 Excel 原始控件,从 Excel 5.0 版开始。表单控件也设计用于 XLM 宏表。
您可以使用表单控件运行宏。您可以将现有宏分配给控件,或者编写或录制新宏。单击控件时,宏。您已经学习了如何从工作表中的表单控件插入命令按钮以运行宏。但是,这些控件不能添加到用户窗体。
ActiveX 控件
ActiveX 控件可用于 VBA 用户窗体。ActiveX 控件具有广泛的属性,可用于自定义其外观、行为、字体和其他特征。
您在用户窗体工具箱中有以下 ActiveX 控件 –
- 指针
- 标签
- 文本框
- 组合框
- 列表框
- 复选框
- 选项按钮
- 框架
- 切换按钮
- 命令按钮
- 标签条
- 多页
- 滚动条
- 旋转按钮
- 图像
除了这些控件之外,Visual Basic 还为您提供了 MsgBox 函数,可用于显示消息和/或提示用户执行操作。
在接下来的几节中,您将了解这些控件和 MsgBox。然后,您将能够选择设计用户窗体所需的这些控件中的哪一个。
标签
您可以通过显示描述性文本(例如标题、说明和/或简要说明)来使用标签进行识别。
例子
文本框
您可以使用作为矩形框的 TextBox 来键入、查看或编辑文本。您还可以将 TextBox 用作显示只读信息的静态文本字段。
例子
列表框
您可以使用列表框来显示一个或多个文本项的列表,用户可以从中进行选择。使用列表框显示数量或内容不同的大量选项。
- 在用户窗体上插入一个列表框。
- 单击列表框。
- 在列表框的属性窗口中为 Name 键入 ProjectCodes。
有三种类型的列表框 –
-
单选列表框– 单选列表框只能选择一个。在这种情况下,列表框类似于一组选项按钮,不同之处在于列表框可以更有效地处理大量项目。
-
多选列表框– 多选列表框启用一个选择或连续(相邻)选择。
-
扩展选择列表框– 扩展选择列表框支持一个选择、连续选择和非连续(或不连续)选择。
您可以从“属性”窗口中选择这些类型的列表框之一。
- 右键单击用户窗体。
- 从下拉列表中选择查看代码。用户窗体的代码窗口打开。
- 单击代码窗口右上角框中的初始化。
- 在 Private Sub UserForm_Initialize() 下键入以下内容。
ProjectCodes.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5")
- 单击功能区上的运行选项卡。
- 从下拉列表中选择运行子/用户窗体。
接下来,您可以为在列表中选择项目的操作编写代码。否则,您可以只显示选定的文本,这是在报告中填写项目代码的情况。
组合框
您可以使用将文本框与列表框组合在一起的ComboBox来创建下拉列表框。组合框比列表框更紧凑,但需要用户单击向下箭头以显示项目列表。使用组合框从列表中仅选择一项。
- 在用户窗体上插入一个组合框。
- 单击组合框。
- 在 ComboBox 的属性窗口中为 Name 键入 ProjectCodes2。
- 右键单击用户窗体。
- 从下拉列表中选择查看代码。
- 用户窗体的代码窗口打开。
键入以下内容,如下所示。
ProjectCodes2.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5")
- 单击功能区上的运行选项卡。
- 从下拉列表中选择运行子/用户窗体。
单击向下箭头以显示项目列表。
单击所需的项目,例如 Project2016-5。所选选项将显示在组合框中。
复选框
您可以使用复选框来选择通过单击复选框显示的一个或多个选项。选项将带有标签,您可以清楚地看到选择了哪些选项。
一个复选框可以有两种状态 –
- 选中(打开),用方框中的勾号表示
- 已清除(关闭),由清除框表示
您可以使用复选框来选择组合框中的选项以节省空间。在这种情况下,复选框也可以具有第三种状态 –
-
混合,表示开和关状态的组合,由框中的黑点表示。这将显示为在带有复选框的组合框中指示多项选择。
-
在用户窗体中插入复选框,如下所示。
- 单击功能区上的运行选项卡。
- 从下拉列表中选择运行子/用户窗体。
- 单击所选选项的框。
选项按钮
您可以使用选项按钮(也称为单选按钮)在一组有限的互斥选项中做出一个选择。选项按钮通常包含在组框或框架中。
选项按钮由一个小圆圈表示。选项按钮可以具有以下两种状态之一 –
- 选中(打开),用圆圈中的一个点表示
- 清除(关闭),由空白表示
框架
您可以使用框架控件(也称为分组框)将相关控件分组为一个可视单元。通常,选项按钮、复选框或密切相关的内容组合在一个框架控件中。
框架控件由带有可选标签的矩形对象表示。
-
插入一个标题为“选择”的框架。
-
在框架控件中插入两个标题为“是”和“否”的选项按钮。Yes 和 No 选项是互斥的。
- 单击功能区上的运行选项卡。
- 从下拉列表中选择运行子/用户窗体。
- 单击您选择的选项。
切换按钮
您可以使用切换按钮来指示状态(例如是或否)或模式(例如开或关)。单击该按钮时,它会在启用和禁用状态之间交替。
在用户窗体上插入一个切换按钮,如下所示 –
-
单击功能区上的运行选项卡。
-
从下拉列表中选择运行子/用户窗体。默认情况下,切换按钮将处于启用状态。
单击切换按钮。切换按钮将被禁用。
如果再次单击切换按钮,它将被启用。
命令按钮
您可以使用命令按钮运行宏,当用户单击它时执行某些操作。您已经学习了如何使用工作表上的命令按钮来运行宏。
命令按钮也称为按钮。在用户窗体上插入一个命令按钮,如下所示 –
- 右键单击命令按钮。
- 在子 Commandbutton1_click () 中键入以下代码。
ProjectCodes2.DropDown
- 单击功能区上的运行选项卡。
- 从下拉列表中选择运行子/用户窗体。
单击命令按钮。组合框的下拉列表打开,因为它是您在代码中编写的操作。
标签条
您可以在用户窗体上插入类似于 Excel 选项卡的选项卡条。
滚动条
您可以使用滚动条通过单击滚动箭头或拖动滚动框来滚动一系列值。
通过在需要的位置绘制滚动条并调整滚动条的长度,在用户窗体上插入滚动条。
- 右键单击滚动条。
- 从下拉列表中选择查看代码。代码窗口打开。
- 在 sub ScrollBar1_Scroll() 下添加以下行。
TextBox2.Text = "Scrolling Values"
- 单击功能区上的运行选项卡。
- 从下拉列表中选择运行子/用户窗体。
拖动滚动框。文本 – 滚动值将显示在文本框中,因为您将其指定为滚动条滚动的操作。
消息框 ()
您可以使用 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"
- 单击功能区上的运行选项卡。
- 从下拉列表中选择运行子/用户窗体。
- 拖动滚动框。
您将依次收到以下消息框。
设计用户表单
现在,您已经了解了可以在用户窗体上使用的不同控件。选择控件,根据需要对它们进行分组,并按照某种有意义的顺序在用户窗体上排列它们。将所需操作编写为对应于各个控件的代码。
有关 UserForm 的示例,请参阅本教程库中的 VBA 教程。