一、什么是对象
VBA有对象、属性、方法和事件,其中对象是VBA的核心。工作簿、工作表、单元格、批注、透视表、自选图形、名称等等都是对象,VBA正是用于处理这些对象的语言。
VBA对对象的操作语句格式总是遵循这样的格式:“对象.属性”、“对象.方法”或者“父对象.子对象.属性”。
例如在下面的实例: ]
Sheets("工作表").Name——Sheets("工作表")是对象,Name是对象的属性
Workbooks(2).Close——Workbooks(2)是对象,Close是对象的方法
Range("a1:a100").Comment.Delete——Range("a1:a100")是父对象,Comment是子对象,Delete是方法。
常见的VBA对象及含义
Application 代表整个 Excel 应用程序
Window 代表窗口
Worksheet 代表一个工作表
Sheets 指定的或活动工作簿中所有工作表的集合
ShapeRange 代表形状区域,它是文档中的一组形状
PivotTable 代表工作表上的数据透视表
Workbook 代表一个 Excel 工作簿
Shape 代表绘图层中的对象,例如自选图形、任意多边形、OLE 对象或图片
Range 代表某一单元格、某一行、某一列、某一选定区域,或者某一三维区域
Name 代表单元格区域的定义名。名称可以是内置名称(如Print_Area)或自定义名称
Chart 代表工作簿中的图表
Hyperlink 超级链接对象
CommandBarPopup 代表命令栏上的一个弹出式控件
CommandBar 代表容器应用程序中的一个命令栏
在VBA中,属性与方法不可以独立存在,一个完整的VBA语句通常包含一个或者多个对象。
二、属性的概念
属性区分可读与可写,大部分属性是可读也可写的。利用Msgbox 函数或者获取其属性,也可以利用等号修改对象的属性值来改变对象的特性。
例如:
Msgbox sheets(1).nam 获取第一个工作表对象的Name属性
Sheets(1).name=”ABC” 修改工作表的Name属性
如果需要获取某个对象的所有属性,通常借用VBA的自动成员列表来获取。例如获取工作表的所有属性,可以通过以下步骤实现:
1.单击菜单【插入】→【模块】;
2.在模块中全入以下代码:
Sub 获取工作表属性()
Dim sht As Worksheet
Set sht = Sheets(1)
sht.
End Sub
当输入到“Sht.”时,VBA会弹出一个下拉框,里面包括了工作表中的所有属性与方法。其中带手形图自标的是对象的图性,而另一类是方法。
三、方法的概念及使用方法
方法是处理对象的过程。
方法是能执行的动作。它是一个动词,而对象是一个名词。但是初学者需要记住,对象与方法的表示在语法是与汉语语法是不同的。
“创建工作表”:创建是动词,表示方法,“工作表”是名词,代表对象。
在VBA中却需要对象在前,方法在后,
示例如下: worksheets.add:worksheets是工作表对象,add是方法,表示新建。
和前面所说的办法一致,在帮助中可以利用自动列出成员的功能获取到关于工作表的所有方法,见表11-2所示:
在下面的实例中,包含了VBA中的多个对象、属性与方法:
Sub 建立一个汇总表()
Dim sht As Worksheet
On Error Resume Next
Set sht = Worksheets("汇总表")
If Err <> 0 Then
Set sht = Sheets.Add
sht.Move after:=Sheets(Sheets.Count)
sht.Name = "汇总表"
End If
End Sub