在线学习
About Us

在线文档

首页 >>在线学习 >>在线文档

第23章:通过VBA程序操纵Excel服务器(一)

VBAVisual 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工具栏,如下图:

 

 

23-1 Visual Basic工具栏

VBA编辑器

点击Visual Basic工具栏上的 ,可进入Visual Basic编辑器,如图:

 

 

 

 

 

 

 

 

 

 

 

23-2 Visual Basic编辑器

还有一种进入VBA编辑器的方法:点击菜单“工具ààVisual Basic编辑器”

通过帮助学习VBA编程

VBA编辑器中点击“帮助”菜单,可看到打开Visual Basic联机帮助,您可以系统、完整地学习VBA编程的有关内容。

利用按钮和窗体等控件

点击Visual Basic工具栏上的 ,弹出控件工具箱,其中列示各种文本框、复选框、按钮等各种控件,若想在工作表上添加一个控件,可先在控件工具箱中单击此控件,然后在工作表上单击,该控件会出现在相应位置,您可以进一步修改它的属性或添加事件处理程序。

 

 

23-3 控件工具栏

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-4 Excel对象模型

23.1.3 事件驱动的编程

如前所述,Excel中的工作簿、工作表、单元区域、单元格、工具栏等都是对象,每类对象都有自己的一套属性、方法和事件。“事件”在用户操作后发生,比如“保存”是一个事件,“打开”某个工作簿是一个事件,在某单元格中“输入”内容是一个事件,点击一个按钮还是一个事件。如果我们希望在完成某项操作的时侯执行某段程序,就要把这段程序写在该操作对应的事件处理程序中。

 

常用的事件有

对象

操作

事件处理程序

工作簿

打开

Workbook_Open

 

关闭

Workbook_BeforeClose

 

保存

Workbook_BeforeSave

 

打印

Workbook_BeforePrint

工作表

双击

Worksheet_BeforeDoubleClick

 

右击

Worksheet_BeforeRightClick

 

选中区域/单元格

Worksheet_ctionChange

 

改变单元格内容

Worksheet_Change

 

激活

Worksheet_Activate