文档介绍:: .
越来越容易学的方向发展。VBA,确切
的说是 VB(我在下面会解释这个微妙的差别)是众多语言中最容易学的,正如
其名字一样,又”Visual”,又”Basic”。所以大可不必担心诸如“我没有编
程基础”之类的心理障碍。
VBA 的全称是 Visual Basic for Applications 的简称。其意思是开发环境被整
合到了某个应用程序的 Visual Basic 语言。在本教程中特指整合在 MS Office
中的 VBA。(其余的还有比如 VBA for AutoCAD, VBA for CorelDraw)我简单的
将一门编程语言分为两个大的部分,第一部分是其语法。语法规定了编程指令执
行的顺序和内存的使用方式。尽管如此,语法本身不能解决任何实际的问题,这
就好比你知道了英语语法,但是不懂单词和短语,就不能正确沟通一样;另一个
部分我称之为“库”,就是其他人写好了的,可以完成一定功能的东西。你可以
调用库的某一个部分来完成自己想做的事情。语法和库在一起合作,最终可以完
成复杂的任务。对于 VBA 来讲,使用的是 VB 的语法(确切的说是 VB6 的语法,
与目前的 完全不同,如果你不知道我在说什么,那么就忽略这句话好了),
采用的是 COM 组件这种库,库的功能是让你能操作 Office 的各种功能(VB 也包
含一个基本的库,以完成一些常见的操作,比如访问文件,字符串操作,数学运
算等。这个库的形式是 Func 和 Sub,而不是 COM)。比如代码:
For i = 1 To 100
= i
Next
完成的工作是让当前 Office 组件的窗口标题在一瞬间从 1 变成 2,3,…,100。
FOR…NEXT 是 VB 规定的语法,用于循环。这些词语被称为“关键字”,你不能
将关键字用于其他用途。而 ActiveWindow 是指当前活动的 Windows 窗口,Captain
指窗口标题,这些就是提供 Office 功能的 COM 组件。关于 COM 组件到底是怎么
工作的我会在第 1 章进行更详细的介绍。你可以类似的写出如下的代码:
sum = 0
For i = 1 To 100
sum = sum + i
Next
1序言
就变成了求 1+2+3+…+100 的和。而:
For i = 1 To 100
MsgBox i
Next
可以显示 100 次对话框,依次显示 1,2,…,100。可见语法并不关心你到底用了
哪些库在做什么,而仅仅是完成其任务而已(在这里是循环)。在今后的教程中,
我会将重点放在介绍 Office 库提供的各种功能上,而不会花很多时间介绍语法。
仅仅是在第一次用某种语法举例子时,我会说明一下。很快你就会发现这是很简
单的一件事情。
在正式介绍编程之间,我简单说一下 VBA 的开发环境,也就是你写代码的地方。
如果你用的是 Office 2003,在 “工具”菜单找“宏”,在其子菜单中找”Visual
Basic”,就可以打开一个新的窗口。如果是在 Office 2007 中,若你没看到“开
发工具”选项卡的话,先到选项中打开它。
然后在“开发工具”选项卡的“代码”区域里按”Visual Basic”按键,就可以
打开同样的界面。(我用 Excel 举例)