Excel VBA 对象

2024 年 8 月 29 日 | 阅读 6 分钟

Excel VBA 对象是使用代码和数据构建的单个“实体”。在编程语言中使用对象的原因是对象也可以包含其他对象。Microsoft Excel 应用程序也是由不同的对象(例如工作簿、电子表格、单元格、区域、行、列和形状)组成的。每个对象都有相关的属性和方法,作为该对象的一部分存储...

虽然 Visual Basic 并不是一种完整的面向对象编程语言,但它处理一个项目。 VBA 对象具有关联的函数和属性,并且可以进一步包含数据或子对象。 Excel 中的每个对象都有许多属性作为该对象的一部分存储。 使用 VBA 对象的优点是它隐藏了实现信息。 当在 VBA 过程中添加一个元素时,默认情况下会为其分配内存空间。

本教程将介绍 VBA 中最常用的对象。

对象组件

对象有其在程序中使用的组件。 下面是对象的三大重要组成部分。

  1. 属性 - 这使用户能够从对象中读取值或在应用程序窗口中写入值。
  2. 方法 - 它们用于对对象数据执行某些操作。 任务在方法内部执行。
  3. 事件 - 每次执行任何 VBA 代码时都会发生事件。

一个真实的类比

以建筑为例。 建筑物是一个由门、房间、窗户、墙壁等组成的对象。 建筑物的所有组件都是它的子对象。 接下来,每个孩子都有一些自己的属性(例如:颜色、瓷砖、地板),它也有一些事件(例如:窗口打开、窗口关闭等)。 同样,Microsoft Excel 工作表是一个对象,而该工作表中存在的单元格区域是其子对象。 此外,工作表扩展并包含不同的属性,例如方法和事件。

性质

使用工作簿时,工作簿是应用程序(对象)的属性。 所有对象都通过属性访问。 在下面的示例中,一个 Range 对象具有 Value、WrapText 等属性。

程序:编写 VBA 代码,向 A1 区域添加一个值,然后对类似的区域使用 WrapText 属性。

方法

方法被定义为可以在对象上执行的操作(函数或子程序)。

例如: 如果您希望在 Excel 工作表中选择一个区域,您将使用 Select 方法,如果您想复制一个区域,您将使用 Copy 方法。

程序:编写一个方法,用于复制所选数据并将其粘贴到另一行

事件

每当您要运行事件时,就会触发函数或子程序。

程序:编写代码以显示消息框事件。

VBA 对象的类型

在使用 VBA 编程时,用户通常会处理四个主要对象。

  1. 应用程序对象
  2. 工作簿对象
  3. 工作表对象
  4. 区域对象

应用程序对象

Excel VBA 应用程序对象是当您想使用 VBA 宏自动化您的工作时最常用的对象。 应用程序对象用于引用各种 Excel 应用程序,并在 Excel 工作簿上执行不同的操作。 它包含以下功能:-

  • 应用程序范围的设置和选项。
  • 不同的 VBA 方法返回对象,例如 ActiveCell、ActiveSheet 等。

示例 1:编写一个程序来创建应用程序对象以打开工作簿。

示例 2:编写一个程序来创建应用程序对象以激活一个窗口。

示例 3:编写一个程序,使用应用程序对象将活动单元格的字体设为粗体。

工作簿对象

工作簿对象是另一个常见的 Excel 对象。 您在 Excel 中执行的任何工作都在一个工作簿中进行,该工作簿保存在一个具有 XLSX 扩展名的文件中(默认情况下)。 工作簿对象是 Workbooks 集合的一个组成部分,包括当前在 Ms Excel 中打开的所有对象(与工作簿相关)。

一个 Excel 工作簿可以容纳 n 个工作表(工作表仅受内存限制)。 Excel 中有四种类型的工作表,如下所示

  1. Excel 工作表
  2. Excel 4.0 XLM 宏表(已过时,但仍受支持)
  3. 图表
  4. Excel 5.0 对话框表(已过时,但仍受支持)

示例 1:编写一个 VBA 程序来关闭工作簿。

示例 2:使用工作簿对象编写一个程序来添加一个空工作簿。

示例 3:使用工作簿对象编写一个程序来打开一个工作簿。

示例 4 - 编写一个程序以激活工作簿中的 sheet1。

工作表对象

使用电子表格时,最喜欢的工作表类型是工作表。 工作表包含多个单元格,单元格是保存所有数据、数字、注释和公式的地方。 工作表单元格可以存储常量数据 - 数字、字符串、日期/时间、布尔值(真或假)或指定函数/公式的输出。

工作表对象是 Worksheets 集合的一个组成部分,并保存工作簿中使用的所有工作表对象。

示例 1:编写一个程序,使用工作表对象使您的工作表不可见

示例 2:使用工作表对象编写一个程序来保护工作表

区域对象

Range 是最常用的对象,当您使用 Excel 工作表时,它可以帮助您自动化 VBA 任务。 一个 Range 对象可以引用 Excel 工作表中的不同区域,并可以执行不同的任务。

Range 对象定义为单元格、行、列或包含一个或多个连续单元格块的单元格选择。 一个 Range 对象包含在一个 Worksheet 对象中,并包含单个单元格或单个工作表上的一系列单元格。

在 VBA 中引用 Range 对象的方法

下面是在 VBA 代码中引用 Range 对象的三种不同方法。

  • 工作表或 Range 类对象的 Range 属性
  • 工作表对象的 Cells 属性
  • Range 对象的 Offset 属性

程序

示例 1:使用 range 对象编写一个程序,将一个值放入单元格 A5 中

示例 2:使用 range 对象编写一个程序,将一个值放入单元格区域。

声明和分配对象变量

在 VBA 中,对象通过使用 Dim 和 Set 关键字来声明并分配给变量。

例如

说明: 在这里,我们使用 Dim 关键字将“wrksht”声明为工作表变量。 稍后,我们使用 Set 关键字将活动工作簿的当前工作表分配给“wrksht”对象变量。

程序:编写 VBA 宏代码以更改区域的字体样式、字体颜色、内部颜色和字体大小。