📜  Excel宏-用户窗体

📅  最后修改于: 2020-12-01 05:39:35             🧑  作者: Mango


有时,您可能不得不反复从他人那里收集信息。 Excel VBA为您提供了一种轻松的方式来处理此任务-UserForm 。与您填写的任何其他表格一样,UserForm使您易于理解要提供的信息。 UserForm对用户友好,因为所提供的控件是不言自明的,并在必要时附有其他说明。

UserForm的主要优点在于,您可以节省花费时间在信息的填充方式上。

创建一个用户窗体

要创建一个用户窗体,请按照下列步骤操作:

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

创建用户表格

UserForm出现在窗口的右侧。

出现用户窗体

了解用户表格

最大化UserForm.xlsx – UserForm1窗口。

您现在处于设计模式。您可以在用户窗体上插入控件,并为相应的动作编写代码。这些控件在工具箱中可用。 UserForm的属性在“属性”窗口中。 UserForm1(UserForm的标题)在Projects Explorer中的Forms下给出。

了解用户表格

  • 在属性窗口中将用户窗体的标题更改为Project Report – Daily。
  • 将用户窗体的名称更改为ProjectReport。

项目报告

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

工具箱中的控件

一个用户窗体将具有不同的组件。当您单击任何一个组件时,将为您提供有关如何提供信息以及如何提供信息的说明,或者为您提供可供选择的选项(选择)。所有这些都是通过UserForm工具箱中的ActiveX控件提供的。

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

表单控件

表单控件是与Excel早期版本(从Excel 5.0版开始)兼容的Excel原始控件。表单控件还设计用于XLM宏表。

您可以通过使用窗体控件来运行宏。您可以将现有的宏分配给控件,或者编写或记录新的宏。单击该控件时,该宏。您已经学习了如何从工作表中的“表单”控件中插入命令按钮来运行宏。但是,这些控件不能添加到用户窗体。

ActiveX控件

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

您在UserForm工具箱中具有以下ActiveX控件-

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

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

在接下来的几节中,您将了解这些控件和MsgBox。然后,您将可以选择设计UserForm所需的控件。

标签

您可以通过显示描述性文本(例如标题,标题和/或简要说明)来将“标签”用于识别目的。

标签

文本框

您可以使用作为矩形框的TextBox键入,查看或编辑文本。您还可以将TextBox用作显示只读信息的静态文本字段。

文本框

列表框

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

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

列表框有三种类型-

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

  • 多选列表框-多选列表框可启用一个选项或连续(相邻)选项。

  • 扩展选择列表框-扩展选择列表框可启用一个选择,连续选择和非连续(或脱节)选择。

您可以从“属性”窗口中选择这些类型的列表框之一。

列表框

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

初始化

  • 单击功能区上的“运行”选项卡。
  • 从下拉列表中选择运行Sub / UserForm。

选择运行

接下来,您可以编写代码以选择列表中的项目。否则,您只能显示所选的文本,这是在报告中填写项目代码的情况。

组合框

您可以使用将文本框和列表框组合在一起的ComboBox来创建下拉列表框。组合框比列表框更紧凑,但是需要用户单击向下箭头以显示项目列表。使用组合框只能从列表中选择一项。

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

组合框

  • 右键单击用户窗体。
  • 从下拉列表中选择查看代码。
  • UserForm的代码窗口打开。

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

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

代码窗口

  • 单击功能区上的“运行”选项卡。
  • 从下拉列表中选择运行Sub / UserForm。

运行标签

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

点击向下箭头

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

必填项

复选框

您可以使用复选框来选择一个或多个通过单击框中显示的选项。这些选项将带有标签,您可以清楚地看到所选的选项。

复选框可以具有两种状态-

  • 选中(打开),在框中用对勾标记
  • 已清除(关闭),以清除框表示

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

  • 混合,表示开和关状态的组合,在框中用黑点表示。这将显示出来,以表明带有复选框的组合框中的多个选择。

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

复选框

  • 单击功能区上的“运行”选项卡。
  • 从下拉列表中选择运行Sub / UserForm。
  • 单击框中的所选选项。

盒子

选项按钮

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

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

  • 选中(启用),由圆圈中的点表示
  • 已清除(关闭),以空白表示

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

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

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

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

帧

  • 单击功能区上的“运行”选项卡。
  • 从下拉列表中选择运行Sub / UserForm。
  • 单击您选择的选项。

选择的选项

切换按钮

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

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

切换按钮

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

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

默认

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

切换按钮

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

命令按钮

您可以使用命令按钮来运行一个宏,该宏在用户单击时执行一些操作。您已经学习了如何在工作表上使用命令按钮来运行宏。

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

命令按钮

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

CommandButton1

  • 单击功能区上的“运行”选项卡。
  • 从下拉列表中选择运行Sub / UserForm。

每日报告

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

组合框

TabStrip

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

滚动条

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

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

滚动条

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

滚动值

  • 单击功能区上的“运行”选项卡。
  • 从下拉列表中选择运行Sub / UserForm。

滚动条报告

拖动滚动框。当您将其指定为滚动条滚动操作时,“文本–滚动值”将显示在文本框中。

文本框

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" 
  • 单击功能区上的“运行”选项卡。
  • 从下拉列表中选择运行Sub / UserForm。
  • 拖动滚动框。

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

留言框

设计用户表单

现在,您已经了解了可以在UserForm上使用的不同控件。选择控件,将它们分组(如果需要),并按照有意义的顺序将它们排列在用户窗体上。将所需的操作编写为与各个控件相对应的代码。

有关UserForm的示例,请参考此教程库中的VBA教程。