第23章、通过VBA程序操纵Excel服务器 VBA是Visual Basic for Applicaton的缩写,它是一种通用的自动化语言,在Excel中,可以通过编写VBA程序,扩展Excel的功能。 本章目的是讲解如何通过VBA程序调用Excel服务器提供的功能。而不在于对VBA编程方法本身的介绍。本章的读者对象是掌握VBA编程的用户。若您对VBA编程不了解,可略过本章内容,不影响其它章节的学习。
23.1 VBA编程概述
23.1.1 VBA编程环境
Visual Basic工具栏 在Excel工具栏的任意一处点击鼠标右键,从弹出菜单中选择“Visual Basic”,出现Visual Basic工具栏,如下图:

VBA编辑器

还有一种进入VBA编辑器的方法:点击菜单“工具?宏?Visual Basic编辑器”
通过帮助学习VBA编程 在VBA编辑器中点击“帮助”菜单,可看到打开Visual Basic联机帮助,您可以系统、完整地学习VBA编程的有关内容。
利用按钮和窗体等控件

23.1.2 Excel对象模型
从编程的角度来看,Excel的各个组成部分都称为对象,一个工作簿是一个Workbook对象,其中的每个工作表是Worksheet对象,一个单元格是range对象,等等。每种对象都有一定的“属性”。比如说,Range对象有一个属性,代表单元格中的内容,这样,当我们想得到A4单元格的值时,就可以写这样一行代码: x=range(“A4”). 对象还有一定的“事件”和“方法”,比如说,workbook对象有一个beforePrint事件,当用户打印工作簿文件时发生,这样,如果我们希望在打印前提醒用户检查打印机,就可以写下面的这段代码。 Private Sub Workbook_BeforePrint(Cancel As Boolean) MsgBox "请检查打印机,然后按确定。" End Sub
下表列举了Excel的常用对象及其属性和方法
|
对象名 |
含义 |
属性/方法 |
|
属性/方法含义 |
|
Workbook |
工作簿 |
Worksheets |
属性 |
属性,所包含的工作表集合 |
|
Worksheets |
工作表集合 |
Count |
属性 |
集合中包含的工作表数 |
|
Worksheet |
工作表 |
Name |
属性 |
工作表名称 |
|
|
|
Prut |
方法 |
打印 |
|
|
|
PrintPreview |
方法 |
打印预览 |
|
Range |
单元区域(格) |
Address |
属性 |
区域地址 |
|
|
|
Row |
属性 |
左上角行号 |
|
|
|
Column |
属性 |
左上角列号 |
|
|
|
Rows |
属性 |
包含的所有行 |
|
|
|
Columns |
属性 |
包含的所有列 |
|
|
|
|
属性 |
值 |
|
|
|
Formula |
属性 |
公式内容 |
|
|
|
ct |
方法 |
选中区域 |
打开Excel的联机帮助,在目录树中展开“编程信息”,可看到Excel的对象模型,如下图所示。从中您可以详细了解每一种对象及其属性和方法的含义、用法

23.1.3 事件驱动的编程 如前所述,Excel中的工作簿、工作表、单元区域、单元格、工具栏等都是对象,每类对象都有自己的一套属性、方法和事件。“事件”在用户操作后发生,比如“保存”是一个事件,“打开”某个工作簿是一个事件,在某单元格中“输入”内容是一个事件,点击一个按钮还是一个事件。如果我们希望在完成某项操作的时侯执行某段程序,就要把这段程序写在该操作对应的事件处理程序中。
常用的事件有
|
对象 |
操作 |
事件处理程序 |
|
工作簿 |
打开 |
Workbook_Open |
|
|
关闭 |
Workbook_BeforeClose |
|
|
保存 |
Workbook_BeforeSave |
|
|
打印 |
Workbook_BeforePrint |
|
工作表 |
双击 |
Worksheet_BeforeDoubleClick |
|
|
右击 |
Worksheet_BeforeRightClick |
|
|
选中区域/单元格 |
Worksheet_ctionChange |
|
|
改变单元格内容 |
Worksheet_Change |
|
|
激活 |
Worksheet_Activate |
|