Excel VBA 编程基础 -- 开发工具简介(三)
通过前面的讨论,代码区中关于“宏”的部分,包括录制宏、执行宏、有关宏安全性的内容以及使用相对引用的含义等等,都已经讲过了。我们前面说过,所谓宏,就是将一些经常进行的手工操作步骤录制下来,并以一个名字来命名它,以后需要再进行这些手工操作时,只需要点击代码区中的“宏”按钮,在宏列表中选择已经录制好的宏自动执行即可。1992 年推出的 Excel 4.0 包含一种特殊的基于公式的宏语言,称为 XLM(Excel Macro Language),这一名称得自于 Excel 一种特殊的文件格式——启用宏的 .xlm 文件格式。1993 年推出的 Excel 5.0 包含了一种简易的编程语言——Visual Basic for Applications(VBA),所录制的宏也自动转换为 VBA 代码。所以,不管你只是想对宏有一进步的了解,还是想成为 Excel 的开发者,都必须熟悉 VBA 代码。想了解 VBA,就从代码区的 Visual Basic 按钮开始吧,见图1:Visual Basic 按钮位于开发工具功能区的最左侧,点一下按钮,就进入了 VBA 的开发环境(VBA IDE),见图2:以前我们说过 VBE,VBE 的全称是 Visual Basic Editor(Visual Basic 编辑器)。而 VBA IDE 的全称是 Visual Basic for Applications Integrated Development Environment(VBA 集成开发环境)。实际上 VBE 和 VBA IDE 指的是同一个东西。以后,不管我们说 VBE,还是 VBA IDE,都是指的图2所示的 VBA 开发环境。图2所显示的 VBA 开发环境是一个初始的最简界面,只在左侧显示了工程资源管理器。下图显示的是一个正在工作中的 VBE:图2 中的 VBE,除去菜单栏和工具栏之外,主体部分包含三个窗口:- PiVBALibProject (PiVBALib.xlam) Excel 加载项,这属于外部资源,所以与当前工作簿的 VBAProject 相并列。
- VBAProject (myExcel.xlsm),当前工作簿的工程
- 显示工程资源管理器中当前对象的属性,图中的当前对象是 MyModule 模块,该对象只有一个属性:名称。你可以在属性窗口中修改 MyModule 对象的名称,譬如改成 XModule 或其他什么名字。
- 代码窗口中的代码与左侧工程资源管理器中的当前对象相关。图中的当前对象是 MyModule,所以代码窗口中的代码是 MyModule 中的代码。双击工程资源管理器中的不同对象,代码窗口中的代码也随之变化。如果左侧对象不含有代码,则代码窗口为空白。
注:VBA 工程资源管理器,英文全称是 Project Explorer。这里,微软将 Project 翻译为“工程”,这个翻译并不好。说到“工程”,让人更多地想起土木工程、机械工程等等“有形”的活动。人们一般将 Project 翻译为“项目”,“项目”比“工程”含义更加宽泛,更加适合软件开发、编程这种“无形”的活动。为了与软件界面保持一致,文中还是称之为“工程”。上述三个窗口中,VBA 工程资源管理器是最重要的窗口,因为所有的资源都是通过这个窗口管理的。代码窗口则是使用最多的窗口,因为所有的代码编辑、调试工作都是在这个窗口中完成的。了解了这三个主要窗口之后,让我们打开视图菜单,看看 VBE 还有哪些窗口,见图3:在视图菜单中,代码窗口、工程资源管理器、属性窗口我们已经熟悉了,定义、最后位置以及立即、本地、监视等窗口都是写代码时才需要的,以后再讲。下面我们讨论一下对象浏览器。这是一个很重要的编程工具。我们知道,宏是组织手工操作步骤的一种手段,其实质是将手工操作转换为 VBA 代码。而 VBA 代码本质上是通过对 Excel 各种对象的操作来完成工作的。那么,Excel 到底都有哪些对象,这些对象又都有哪些方法和属性供我们操作呢?对象浏览器为我们了解这些内容提供了有力的帮助。见图4:对象浏览器如此重要,以至于 VBE 为此提供了一个专门的快捷键 F2。只要按一下 F2,就会跳出对象浏览器。图中当前的类是<全局>(当然,全局并不是一个类,所以用尖括号括起来,表示这并不是一个通常意义上的类,而只是用来表示一个范围,或者,用编程的术语说,是一个名字空间 namespace),右侧显示<全局>类的成员,当前的成员是 Abs 函数(取绝对值的函数),下部显示 Abs 函数的语法,并说明 Abs 这个函数属于 VBA.Math。VBA.Math 是 VBA 的数学类,所有的数学函数都是这个类的成员。我们在图4 的<所有库>的下拉列表框中选择 VBA,见图5:可以看到,VBA 中有很多类,如 Math 数学类,Strings 字符串类,DateTime 日期时间类等等。点击“Math”,可以查看 Math 类中都有哪些数学函数,见图6:由图可见,VBA.Math 类中的数学函数有三角函数、指数函数、对数函数、随机数发生器等等。我们后面的文章中会用到这些函数,到时候再详细讨论这些函数的意义与用法。关于 VBE 的简单介绍就到这里,以后会慢慢展开。