Excel宏 - 用户窗体



有时,您可能需要反复收集其他人的信息。Excel VBA提供了一种简单的方法来处理此任务 - **用户窗体**。与您填写的任何其他表单一样,用户窗体使您能够轻松理解需要提供哪些信息。用户窗体以其提供的控件不言自明的方式易于使用,并在必要时附带其他说明。

用户窗体的主要优点是您可以节省在填写信息的内容和方式上花费的时间。

创建用户窗体

要创建用户窗体,请按以下步骤操作:

  • 单击功能区上的“开发工具”选项卡。
  • 单击“Visual Basic”。将打开工作簿的Visual Basic窗口。
  • 单击“插入”,
  • 从下拉列表中选择“用户窗体”。
Creating UserForm

用户窗体将显示在窗口的右侧。

UserForm Appears

了解用户窗体

最大化UserForm.xlsx – UserForm1窗口。

您现在处于设计模式。您可以在用户窗体上插入控件并为相应的操作编写代码。这些控件在工具箱中可用。用户窗体的属性位于“属性”窗口中。UserForm1(用户窗体的标题)在“项目资源管理器”中的“窗体”下给出。

Understanding UserForm
  • 在“属性”窗口中将用户窗体的标题更改为“项目报告 - 每日”。
  • 将用户窗体的名称更改为ProjectReport。
ProjectReport

更改将反映在用户窗体、属性和项目资源管理器中。

工具箱中的控件

用户窗体将具有不同的组件。当您单击任何组件时,您将获得有关信息内容和提供方式的说明,或者您将获得可供选择的选项。所有这些都是通过用户窗体工具箱中的ActiveX控件提供的。

Excel提供两种类型的控件 - 窗体控件和ActiveX控件。您需要了解这两种控件之间的区别。

窗体控件

窗体控件是Excel原始控件,与早期版本的Excel兼容,从Excel 5.0版本开始。窗体控件也设计用于XLM宏工作表。

您可以使用窗体控件运行宏。您可以将现有宏分配给控件,或编写或录制新的宏。当单击控件时,宏将运行。您已经了解了如何在工作表中从窗体控件插入命令按钮以运行宏。但是,这些控件不能添加到用户窗体中。

ActiveX控件

ActiveX控件可用于VBA用户窗体。ActiveX控件具有广泛的属性,您可以使用这些属性自定义其外观、行为、字体和其他特性。

在用户窗体工具箱中,您有以下ActiveX控件:

  • 指针
  • 标签
  • 文本框
  • 组合框
  • 列表框
  • 复选框
  • 选项按钮
  • 框架
  • 切换按钮
  • 命令按钮
  • 选项卡控件
  • 多页
  • 滚动条
  • 旋转按钮
  • 图像

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

在接下来的几个部分中,您将了解这些控件和MsgBox。然后,您将能够选择设计用户窗体所需的控件。

标签

您可以使用标签来识别目的,方法是显示描述性文本,例如标题、字幕和/或简要说明。

示例

Label

文本框

您可以使用文本框(一个矩形框)来键入、查看或编辑文本。您还可以将文本框用作静态文本字段,以显示只读信息。

示例

TextBox

列表框

您可以使用列表框来显示一个或多个文本项的列表,用户可以从中选择。使用列表框来显示数量或内容变化较多的大量选择。

  • 在用户窗体上插入一个列表框。
  • 单击列表框。
  • 在列表框的“属性”窗口中,为“名称”键入ProjectCodes。

列表框有三种类型:

  • **单选列表框** - 单选列表框仅允许选择一个选项。在这种情况下,列表框类似于一组选项按钮,只是列表框可以更有效地处理大量项目。

  • **多选列表框** - 多选列表框允许选择一个选项或连续(相邻)选项。

  • **扩展选择列表框** - 扩展选择列表框允许选择一个选项、连续选项和非连续(或不连续)选项。

您可以从“属性”窗口中选择其中一种列表框类型。

ListBox
  • 右键单击用户窗体。
  • 从下拉列表中选择“查看代码”。用户窗体的代码窗口将打开。
  • 单击代码窗口右上角的“初始化”。
  • 在Private Sub UserForm_Initialize()下键入以下内容。
ProjectCodes.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5") 

Initialize
  • 单击功能区上的“运行”选项卡。
  • 从下拉列表中选择“运行子过程/用户窗体”。
Select Run

接下来,您可以为在列表中选择项目编写操作代码。否则,您只需显示选定的文本,这适用于在报告中填写项目代码的情况。

组合框

您可以使用**组合框**,它将文本框与列表框结合起来以创建下拉列表框。组合框比列表框更紧凑,但要求用户单击向下箭头才能显示项目列表。使用组合框从列表中选择一项。

  • 在用户窗体上插入一个组合框。
  • 单击组合框。
  • 在组合框的“属性”窗口中,为“名称”键入ProjectCodes2。
ComboBox
  • 右键单击用户窗体。
  • 从下拉列表中选择“查看代码”。
  • 用户窗体的代码窗口将打开。

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

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

Code Window
  • 单击功能区上的“运行”选项卡。
  • 从下拉列表中选择“运行子过程/用户窗体”。
Run Tab

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

Click Down Arrow

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

Required Item

复选框

您可以使用复选框来选择一个或多个选项,方法是单击框中的选项。这些选项将有标签,您可以清楚地看到选择了哪些选项。

复选框可以有两种状态:

  • 选中(打开),在框中用勾号表示
  • 清除(关闭),用空白框表示

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

  • 混合,表示打开和关闭状态的组合,在框中用黑点表示。这将显示为表示在带有复选框的组合框中进行多个选择。

  • 如下所示在用户窗体中插入复选框。

CheckBox
  • 单击功能区上的“运行”选项卡。
  • 从下拉列表中选择“运行子过程/用户窗体”。
  • 单击您选择的选项的框。
Boxes

选项按钮

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

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

  • 选中(打开),在圆圈中用点表示
  • 清除(关闭),用空白表示

框架

您可以使用框架控件(也称为组合框)将相关的控件组合到一个视觉单元中。通常,选项按钮、复选框或密切相关的控件都组合在框架控件中。

框架控件由一个带可选标签的矩形对象表示。

  • 插入一个标题为“选择”的框架。

  • 在框架控件中插入两个标题分别为“是”和“否”的选项按钮。选项“是”和“否”是互斥的。

Frame
  • 单击功能区上的“运行”选项卡。
  • 从下拉列表中选择“运行子过程/用户窗体”。
  • 单击您选择的选项。
Selected Option

切换按钮

您可以使用切换按钮来指示状态(例如“是”或“否”)或模式(例如“开”或“关”)。当单击按钮时,它会在启用和禁用状态之间切换。

如下所示在用户窗体上插入切换按钮:

TogglebButton
  • 单击功能区上的“运行”选项卡。

  • 从下拉列表中选择“运行子过程/用户窗体”。切换按钮默认处于启用状态。

Default

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

Toggle Button

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

命令按钮

您可以使用命令按钮来运行宏,当用户单击它时,该宏将执行某些操作。您已经了解了如何在工作表上使用命令按钮来运行宏。

命令按钮也称为按钮。如下所示在用户窗体上插入一个命令按钮:

CommandButton
  • 右键单击命令按钮。
  • 在子过程Commandbutton1_click()中键入以下代码。
ProjectCodes2.DropDown 

CommandButton1
  • 单击功能区上的“运行”选项卡。
  • 从下拉列表中选择“运行子过程/用户窗体”。
Daily Report

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

Combo Box

选项卡控件

您可以在用户窗体上插入一个类似于Excel选项卡的选项卡控件。

滚动条

您可以使用滚动条通过单击滚动箭头或拖动滚动框来滚动一系列值。

通过在所需位置绘制滚动条并在用户窗体上插入它,并调整滚动条的长度。

ScrollBar
  • 右键单击滚动条。
  • 从下拉列表中选择“查看代码”。代码窗口将打开。
  • 在sub ScrollBar1_Scroll()下添加以下行。
TextBox2.Text = "Scrolling Values" 

Scrolling Value
  • 单击功能区上的“运行”选项卡。
  • 从下拉列表中选择“运行子过程/用户窗体”。
ScrollBar Report

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

Text Box

MsgBox()

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

例如,当您开始滚动滚动框时,可以显示一条消息,指示值正在滚动。

MsgBox Function

消息框图标显示

您可以使用消息框图标显示来传达特定的消息。您有多个消息框图标可供选择,以满足您的需求:

  • 在 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" 
  • 单击功能区上的“运行”选项卡。
  • 从下拉列表中选择“运行子过程/用户窗体”。
  • 拖动滚动框。

您将依次收到以下消息框。

Message Boxes

设计用户窗体

现在,您已经了解了可以在用户窗体上使用的不同控件。选择控件,如果需要,将它们组合起来,并根据某种有意义的顺序将它们排列在用户窗体上。将所需的动作编写为对应于各个控件的代码。

请参阅本教程库中的 VBA 教程,了解用户窗体的示例。

广告