工作表上的窗体、窗体控件和 ActiveX 控件概述

应用对象
Microsoft 365 专属 Excel Excel 2024 Excel 2021 Excel 2019 Excel 2016

重要

此功能在Windows RT电脑上的 Office 中不可用。 想要了解你正在使用的 Office 版本

工作表窗体的示例 通过使用窗体以及可添加到窗体中的许多控件和对象,您可以更轻松地在工作表上输入数据,并改进工作表的外观。 也可使用少量或者无需使用 Microsoft Visual Basic for Applications (VBA) 代码来自己实现这一点。

工作表表单与 Excel 模板不是一回事。 模板是一个预设格式的文件,可以帮助您开始创建工作簿并使其外观符合您的需要。 表单包含复选框或下拉列表等控件,可以让使用您的工作表的用户更容易输入或编辑数据。 若要了解有关可下载的模板的详细信息,请参阅 Excel 模板

什么是表单?

窗体(无论是打印的还是联机的)都是采用标准结构和格式设计的文档,可更轻松地捕获、组织和编辑信息。

  • 打印的表单包含用于写入或键入数据的指令、格式、标签和空格。 可以使用 Excel 和 Excel 模板创建打印表单。
  • 联机表单包含与打印表单相同的功能。 此外,联机窗体包含控件。 控件是显示数据或使用户更容易输入或编辑数据、执行操作或做出选择的对象。 通常,控件使表单更易于使用。 例如,列表框、选项按钮和命令按钮都是常用控件。 通过运行 Visual Basic for Applications (VBA) 代码,这些控件还可以运行指定宏和响应事件,例如鼠标点击。

可以通过多种方式使用 Excel 创建打印窗体和联机表单。

Excel 表单的类型

您可以在 Excel 中创建多种类型的表单:数据表单、含有表单和 ActiveX 控件的工作表以及 VBA 用户表单。 可以单独使用每种类型的表单,也可以通过不同方式将它们结合在一起来创建适合您的解决方案。

数据表单

数据窗体提供了一种在区域或表中输入或显示一个完整的信息行而无需水平滚动的便捷方法。 您可能会发现,当数据的列数超过可以在屏幕上查看的数据列数时,使用数据表单可以使数据输入变得更容易,而无需在列之间进行移动。 如果以标签的形式将列标题列出的文本框这一简单表单足以满足您的需求,而且您不需要使用复杂的或自定义的表单功能(例如列表框或调节钮),则可以使用数据表单。

典型数据窗体的示例 Excel 可以自动生成区域或表的内置数据窗体。 数据表单会在一个对话框中将所有列标题都显示为标签。 每个标签旁边都有一个空白文本框,您可以在其中输入每一列的数据,最多可以输入 32 列数据。 在数据窗体中,可以输入新行、通过导航查找行,或者根据单元格内容 () 更新行和删除行 。 如果单元格包含公式,公式结果将显示在数据窗体中,但不能使用数据窗体更改公式。

含有表单和 ActiveX 控件的工作表

工作表是一种表单类型,可用于在网格上输入和查看数据,Excel 工作表中已内置了多个类似控件的功能,例如注释和数据验证。 单元格类似于文本框,你可以在其中以多种方式输入和设置它们的格式。 单元格通常用作标签,通过调整单元格高度和宽度以及合并单元格,可以使工作表的行为类似于简单的数据输入表单。 其他类似控件的功能(如单元格注释、超链接、背景图像、数据验证、条件格式设置、嵌入图表和自动筛选)可以使工作表的行为类似于高级表单。

为了提高灵活性,可以将控件和其他绘图对象添加到工作表的绘图画布,并将它们与工作表单元格进行组合和协调。 例如,你可以使用列表框控件方便用户从项目列表中选择项目。 还可以使用调节钮控件方便用户输入数字。

因为控件和对象存储在绘图画布中,所以你可以显示或查看不受行和列边界限制的关联文本旁边的控件和对象,而无需更改工作表中数据网格或表的布局。 在大多数情况下,还可以将其中许多控件链接到工作表中的单元格,而无需使用 VBA 代码即可使它们正常工作。 你可以设置相关属性来确定控件是自由浮动还是与单元格一起移动和改变大小。 例如,在对区域进行排序时,您可能有一个希望与基础单元格一起移动的复选框。 不过,如果您有一个希望一直保持在特定位置的列表框,则您可能希望它不与其基础单元格一起移动。

Excel 有两种类型的控件:表单控件和 ActiveX 控件。 除了这些控件集外,还可以从绘图工具添加对象,例如自选图形、艺术字、SmartArt 图形或文本框。

以下部分介绍这些控件和绘图对象,此外,还更为详细地介绍如何使用这些控件和对象。

表单控件

表单控件是与早期版本的 Excel(从 Excel 5.0 版开始)兼容的原始控件。 表单控件还适于在 XLM 宏工作表中使用。

如果您想在不使用 VBA 代码的情况下轻松引用单元格数据并与其进行交互,或者想在图表工作表中添加控件,则可使用表单控件。 例如,将列表框控件添加到工作表并将其链接到单元格后,可以返回控件中选定项的当前位置的数值。 然后,您可以将该数值与 INDEX 函数结合使用,以从列表中选择不同的项目。

您还可以使用表单控件来运行宏。 可以将现有宏附加到控件,也可以编写或录制新宏。 当表单用户单击控件时,该控件会运行宏。

但是,这些控件不能添加到 UserForms、用于控制事件或修改以在网页上运行 Web 脚本。

表单控件概述

按钮名称 示例 说明
按钮图像 标签 表单标签控件示例
按钮图像 分组框 表单工具栏分组框控件示例
按钮图像 按钮 表单工具栏按钮控件示例
按钮图像 复选框 表单工具栏复选框控件示例
按钮图像 选项按钮 表单工具栏选项按钮控件示例
按钮图像 列表框 表单列表框控件示例
按钮图像 组合框 表单组合框控件示例
按钮图像 滚动条 表单工具栏滚动条控件示例
按钮图像 数值调节钮 表单工具栏微调控件示例
按钮名称
按钮图像 文本字段
按钮图像 组合列表 - 编辑
按钮图像 组合下拉列表 - 向下编辑
按钮图像 “运行”对话框

ActiveX 控件

ActiveX 控件可用于工作表表单(使用或不使用 VBA 代码)和 VBA 用户表单。 通常,如果相对于表单控件所提供的灵活性,您的设计需要更大的灵活性,则使用 ActiveX 控件。 ActiveX 控件具有大量可用于自定义其外观、行为、字体及其他特性的属性。

您还可以控制与 ActiveX 控件进行交互时发生的不同事件。 例如,您可以执行不同的操作,具体取决于用户从列表框控件中所选择的选项;还可以查询数据库以在用户单击某个按钮时用项目重新填充组合框。 您还可以编写宏来响应与 ActiveX 控件关联的事件。 表单用户与控件进行交互时,VBA 代码会随之运行以处理针对该控件发生的任何事件。

计算机还包含许多由 Excel 和其他程序(例如Windows 媒体播放器)安装的 ActiveX 控件。

重要

并非所有 ActiveX 控件都可以直接用于工作表;有些 ActiveX 控件只能用于 Visual Basic for Applications (VBA) 用户表单。 如果您尝试向工作表中添加这些特殊 ActiveX 控件中的任何一个控件,Excel 都会显示消息“不能插入对象”。

然而,无法从用户界面将 ActiveX 控件添加到图表工作表,也无法将其添加到 XLM 宏工作表。 也不能将宏分配为直接从 ActiveX 控件运行,就像从 Form 控件一样。

ActiveX 控件概述

按钮名称 示例 说明
按钮图像 复选框 ActiveX 复选框控件示例
按钮图像 文本框 ActiveX 文本框控件示例
按钮图像 “命令”按钮 ActiveX 命令按钮控件示例
按钮图像 选项按钮 ActiveX 选项按钮控件示例
按钮图像 列表框 ActiveX 列表框控件示例
按钮图像 组合框 ActiveX 组合框控件示例
按钮图像 切换按钮 ActiveX 切换按钮控件示例
按钮图像 数值调节钮 ActiveX 调节钮控件示例
按钮图像 滚动条 ActiveX 滚动条控件示例
按钮图像 标签 ActiveX 标签控件示例
按钮图像 图片 ActiveX 图像控件示例
结构控件 ActiveX 分组框控件示例
按钮图像 其他控件

绘图工具对象

形状示例 你可能还希望在表单中包含 SmartArt 图形、形状、艺术字和文本框。 可以对这些对象执行调整大小、旋转、翻转、着色以及合并等操作来创建更为复杂的形状。 直接在 Shape 或文本框对象中键入文本时,文本将成为该对象的一部分 -- 如果旋转或翻转对象,文本将随该对象一起旋转或翻转。 与 ActiveX 控件不同,您可以为对象中的各个字或字符指定不同的属性(如字号和字体样式)。 还可以为这些对象指定宏以及添加超链接。 甚至可以将形状或文本框对象中的文本链接到工作表单元格,以及在这些对象中自动显示更新的值。

使用工作表表单中的控件和对象

向工作表表单中添加表单和 ActiveX 后,通常需要以多种方式对控件进行细微调整和重新排列,以创建设计良好、便于用户使用的表单。 常见任务包括:

  • 使用控件时控制网格线的显示,以及决定是否在最终工作表表单中向用户显示网格线。
  • 选择和取消选择控件,以便可以指定属性或进行其他调整。
  • 编辑控件中的文本,如标题或标签。
  • 对控件执行分组、复制、移动和对齐操作,以组织工作表表单的布局。
  • 调整控件大小并设置控件格式,以获取所需的外观。
  • 在一个单元格中放置控件或调整控件大小。
  • 根据特定的数据保护需求,保护控件和链接的单元格。
  • 打印工作表表单时启用或禁用对控件的打印。
  • 删除未使用的控件。

您可以设计在背景中包含或不包含网格线的工作表表单。 例如,您可能需要关闭单元格网格线,然后用相同的颜色或图案设置所有单元格的格式,甚至使用图片作为工作表的背景。 要隐藏或显示网格线,请在“视图”选项卡的“显示”组中,清除或选中“网格线”复选框。

确定工作表中控件的类型

因为有三种不同类型的控件和对象可供您单独修改,所以只通过查看控件可能无法确切了解控件属于哪一种类型。 若要确定控件的类型(表单或 ActiveX),请选定并右键单击控件,此时会显示快捷菜单:

  • 如果快捷菜单包含“属性”命令,则该控件是 ActiveX 控件,并且您在使用设计模式。

  • 如果快捷菜单包含“指定宏”命令,则该控件是表单控件。

    提示

    若要显示组框窗体控件的正确快捷菜单,请确保选择外围而不是组框的内部。

  • 如果快捷菜单包含“编辑文字”命令,则该对象是绘图对象。

VBA 用户表单

为了获得最大的灵活性,可以创建 UserForms(自定义对话框),通常包括一个或多个 ActiveX 控件。 进行相应设置以从您在“Visual Basic 编辑器”中创建的 VBA 代码中使用用户表单。 创建用户表单的高级步骤如下所示:

注意

出于安全原因,ActiveX 控件已被禁用,在较新版本的 Excel 中不起作用。

  1. 在工作簿的 VBAProject 中插入用户表单。 通过首先显示 Visual Basic 编辑器 (按 Alt+F11) ,然后在“ 插入 ”菜单上单击“ UserForm”来访问工作簿的 VBAProject。
  2. 编写一个用于显示用户表单的过程。
  3. 添加 ActiveX 控件。
  4. 修改 ActiveX 控件的属性。
  5. 为 ActiveX 控件编写事件处理程序过程。

使用用户表单,您还可以利用高级表单功能。 例如,您可以通过编程方式为字母表中的每个字母添加单独的选项按钮,也可以为较大的日期和数字列表中的每个项目添加复选框。

在创建用户表单之前,请考虑使用 Excel 中可满足您需求的内置对话框。 这些内置对话框包括 VBA InputBoxMsgBox 函数、Excel InputBox 方法、GetOpenFilename 方法、GetSaveAsFilename 方法以及 Application 对象的 Dialogs 对象(包含所有内置 Excel 对话框)。

有关详细信息,请浏览 Microsoft Office Excel 开发人员中心

返回页首