Excel 97/VBA 技术讲座之一
2002-2-8 Excel Home
今年 5 月,美国 Microsoft 公司在中国推出了 Office 套件的最新版本——Office 97 中文版。该套件的各个软件
都提供 Visual Basic for Application(VBA)作为其宏语言,为使用这些软件的广大用户提供了一个新的、更高层
次的开发平台。即使是非计算机专业的用户,利用 VBA 也可以方便地开发出高水平的应用软件系统。本讲座主要以
Excel 97 为例,介绍 VBA 的基本概念、主要特点和应用 VBA 开发应用软件的基本步骤。
一、概述 1. Excel 97 Office 97 中文版是 Microsoft 公司第一个完全汉化的 Office 套件,是运行于 Windows
95/Windows NT 环境下应用最为广泛的软件之一。其中有 Word 97、Excel 97、Power Point 97、Access 97
和 Outlook 97。其中的 Access 97 和 Power Point 97 是首次汉化,Outlook 97 是新增的个人事务管理组件。
Excel 97 是 Microsoft Office 97 家族成员。是一个功能强大、技术先进、使用方便的表格式数据综合管理和分
析系统。它采用电子表格方式进行数据处理,工作直观方便;提供了丰富的函数,可以进行各种数据处理、统计分
析、辅助决策,适用于财政、金融、统计、管理等广泛的应用领域;具有强大的制图功能,可以方便地绘出各种专
业图表,实现了图、文、表三者的完美结合;新推出的 Excel 97 还新增了预防宏病毒的功能,插入地图和超级链接
的功能(直接链接来自 Internet 或其它网络地址的文档);以及视面管理器、共享工作簿等功能。Excel 97 的强大
功能还在于它提供的宏语言 VBA。
2. Visual Basic for Application Visual Basic 是 Windows 环境下开发应用软件的一种通用程序设计语言,
功能强大,直观易用。一方面,它是可视性程序设计语言,许多复杂的用户界面设计都可以直观地利用鼠标拖放以
及对各种对象属性的设置、修改完成,几乎无需编程。另一方面,程序的控制普遍采用了事件驱动机制,根据用户
操作触发的事件,执行不同的动作,完成相应的功能,因而都是一些短小精练的过程,容易设计和调试。VBA 则是
根据其嵌入软件的不同,增加了对相应软件不同对象的控制功能。例如 Excel 97 的 VBA,主要增加了关于 Excel
工作簿、工作表、区域、数据透视表等对象的属性、事件和方法。在 Excel 97 中使用 VBA,可以更方遍地操作
Excel,更好地控制 Excel,进一步深入发掘 Excel 的强大功能,全面提高使用 Excel 工作的自动化水平。甚至可以
在短短的几天时间内就在 Excel 环境中开发出所需的完整的管理信息系统。而且 VBA 广泛地应用于 Microsoft 公司
开发的各种软件中,例如 Office 97 套件中的 Powerpoint 97、Word 97、Outlook 97 等。所以本讲座介绍的内
容不仅对 Excel 有用,对于其它包含 Visual Basic 的应用程序也同样有用。
3. VBA 与 Excel 97 的关系 早期电子数据表的宏语言是模仿用户界面的,实质上就是一些按键的组合,再加
上 一 些 类 似 于 Basic 语 言 中 的 INPUT 、 IF … THEN …
E���? Z�� ��?���������� 癛 NC”相当于用户键入 R(区域
“Range”)、N(名称“Name”)C(创建“Create”),执行的是创建区域名的操作。这样的宏不仅难以阅读,而
且也与图形用户界面不适应。Excel 5.0 以前的版本开始使用独立于用户界面的宏语言。例如在 Excel 4.0 版中至少
有三种不同的方法复制一个区域:使用 Ctrl+C 复合键;使用工具栏中的“复制”工具按钮;使用“编辑”菜单中的
“复制”命令。所有这些用户操作序列都被翻译成单一的宏函数,=COPY( )。这样的宏的主要缺点是 Excel 宏只能
用于 Excel,而无法适应其它应用程序。从 Excel 5.0 开始使用 VBA 作为宏语言,Excel 97 中的 VBA 功能更为强
大,使用也更方便。
宿主于 Excel 97 中的 VBA,不是嵌入在 Excel 内部,而是通过一组称作对象库的特殊命令与 Excel 关联的。VBA
与其它软件的这种控制关系,使得 VBA 不仅可以控制 Excel,而且可以控制任何提供对象库的应用程序。例如所有
的 Office 97 应用程序都提供对象库,其它一些 Microsft 和非 Microsoft 应用程序也提供对象库。同时宿主于 Excel
的 VBA 也不是唯一与 Excel 对象库通信的语言,还可以使用宿主于 Word 的 VBA,独立版本的 Visual Basic,C++
以及 Delphi 等操纵 Excel。
4. VBA 与 Excel 对象的关系 Excel 97 的众多对象之间是相互关联的,构成了一个有机的整体。其中
Application 对象位于最上层,代表了整个 Excel 应用程序。包括应用程序的各种选项以及当前活动的各种对象。
其下面主要有 Workbooks(工作簿集合)对象、Window(窗口)对象、Dialog(对话框)对象等。而 Workbooks