VBA编程概述
32.1.1 VBA编程环境
Visual Basic工具栏
在Excel工具栏的任意一处点击鼠标右键,从弹出菜单中选择“Visual Basic”,出现Visual Basic工具栏,如下图:
VBA编辑器
点击Visual Basic工具栏上的 ,可进入Visual Basic编辑器,如图:
还有一种进入VBA编辑器的方法:点击菜单“工具-宏-Visual Basic编辑器”
通过帮助学习VBA编程
在VBA编辑器中点击“帮助”菜单,可看到打开Visual Basic联机帮助,您可以系统、完整地学习VBA编程的有关内容。
利用按钮和窗体等控件
点击Visual Basic工具栏上的 ,弹出控件工具箱,其中列示各种文本框、复选框、按钮等各种控件,若想在工作表上添加一个控件,可先在控件工具箱中单击此控件,然后在工作表上单击,该控件会出现在相应位置,您可以进一步修改它的属性或添加事件处理程序。
32.1.2 Excel对象模型
从编程的角度来看,Excel的各个组成部分都称为对象,一个工作簿是一个Workbook对象,其中的每个工作表是Worksheet对象,一个单元格是range对象,等等。每种对象都有一定的“属性”。比如说,Range对象有一个value属性,代表单元格中的内容,这样,当我们想得到A4单元格的值时,就可以写这样一行代码:
x=range(“A4”).value
对象还有一定的“事件”和“方法”,比如说,workbook对象有一个beforePrint事件,当用户打印工作簿文件时发生,这样,如果我们希望在打印前提醒用户检查打印机,就可以写下面的这段代码。
Private Sub Workbook_BeforePrint(Cancel As Boolean)
MsgBox "请检查打印机,然后按确定。"
End Sub
下表列举了Excel的常用对象及其属性和方法
对象名 | 含义 | 属性/方法 | 属性/方法含义 | |
Workbook | 工作簿 | Worksheets | 属性 | 属性,所包含的工作表集合 |
Worksheets | 工作表集合 | Count | 属性 | 集合中包含的工作表数 |
Worksheet | 工作表 | Name | 属性 | 工作表名称 |
PrintOut | 方法 | 打印 | ||
PrintPreview | 方法 | 打印预览 | ||
Range | 单元区域(格) | Address | 属性 | 区域地址 |
Row | 属性 | 左上角行号 | ||
Column | 属性 | 左上角列号 | ||
Rows | 属性 | 包含的所有行 | ||
Columns | 属性 | 包含的所有列 | ||
Value | 属性 | 值 | ||
Formula | 属性 | 公式内容 | ||
Select | 方法 | 选中区域 |
打开Excel的联机帮助,在目录树中展开“编程信息”,可看到Excel的对象模型,如下图所示。从中您可以详细了解每一种对象及其属性和方法的含义、用法。
32.1.3 事件驱动的编程
如前所述,Excel中的工作簿、工作表、单元区域、单元格、工具栏等都是对象,每类对象都有自己的一套属性、方法和事件。“事件”在用户操作后发生,比如“保存”是一个事件,“打开”某个工作簿是一个事件,在某单元格中“输入”内容是一个事件,点击一个按钮还是一个事件。如果我们希望在完成某项操作的时侯执行某段程序,就要把这段程序写在该操作对应的事件处理程序中。
常用的事件有
对象 | 操作 | 事件处理程序 |
工作簿 | 打开 | Workbook_Open |
关闭 | Workbook_BeforeClose | |
保存 | Workbook_BeforeSave | |
打印 | Workbook_BeforePrint | |
工作表 | 双击 | Worksheet_BeforeDoubleClick |
右击 | Worksheet_BeforeRightClick | |
选中区域/单元格 | Worksheet_SelectionChange | |
改变单元格内容 | Worksheet_Change | |
激活 | Worksheet_Activate |