WORDVBA编程从零开始学VBA
从零开始,步入 Word 宏编程的世界(第一讲) 工作中,经常看到许多朋友在使用 Office 时已经非常地熟练,但仍不敢去接触 Office 的 VBA 编程;在网 上 Office 的 VBA 编程论坛中,同样看到有朋友在其中流连了相当长的时间,但仍然不得其门而入。问一下这 两类朋友,前者觉得编程是一件很“高深”的事,自己恐怕学不会;后者为了提高自己的工作效率,虽然很想 学,但自己一点编程的基础也没有,照着网上高手们的帖子做,反而越学越糊涂。当我问第二类朋友为什么 不多看看 VBA 的帮助文件时,“看不大懂,就像有语言障碍一样。”他这样回答我。 对于第一类朋友,我想说,不要被自己想象出来的“困难”吓倒,如果您没有亲自尝试过,怎么知道编程 会很“高深”,又怎么知道自己学不会?而第二类朋友如果能静下心来把基础知识补一补,相信您的问题也会 迎刃而解。 那么,就让我们从最基础的知识开始,步入 Office 宏编程的世界吧。 文前的几点说明: 1、虽说本文用到的程序在 office2007 与 office2010 中同样可以正常运行,但考虑到目前单位办公用机的 实际情况,本文所有的实例主要还是面向 Office2003 的用户; 2、为了便于各位读者理清思路,避免文章涉及面太广,本文主要以 office2003 中最常用的 Word 为主进 行讲述,有与其它 Office 套件相关联的地方,将单独说明; 3、为避免学习过程中的枯燥乏味,本文没有像传统编程教材那样以理论知识为线索展开,而是将不同的 知识点放到了几个不同的实例之中进行讲述。所以,把每个实例“做”一遍,细心体会每个实例的知识点,将 有助于您快速掌握 VBA 的编程技术;单纯地“看”,则无助于您的学习。 本文的宗旨是——完全面向初学者!或许您还能以此为契机叩开奔向 VB6.0 或 VB.NET 的大门,说不 定您还能编出一、两个病毒玩玩儿(当然仅限于玩玩儿,千万别做出什么傻事来!) ! 好了,下面就开始我们 Word 的 VBA 编程之旅吧,愿您旅途愉快! 实例一:“你好,世界!” 知识点: 1、熟悉 VBE 的编程界面; 2、什么是 VB、VBE、VBA; 3、什么是过程、工程。 不要以为这些知识点有多难,让我们一步一步地来。 启动 Word,指向工具——宏——VB 编辑器,打开 VB 编辑器的界面,如图 1-1。 “VB 编辑器”就是 VBE,VBE 是 Visual Basic Editing 的缩写。我们在 VBE 编程环境中所使用的编程语言 就是“VBA”,即 Visual Basic for Applications 的缩写,VBA 语言是我们所熟知的 VB 编程语言的一个子集。 VBE 编辑器界面的菜单栏与工具栏就不必说了。界面左面中间部份是“工程资源管理器”所在的“工程资源 管理区”,每一篇 Word 文档中所编写的程序,Word 都把它看成为一个“工程”,“工程资源管理器”就是对这些 工程进行管理的地方;界面左下方是“对像属性设置区”,我们可以对自己要用到的对像的属性进行设置,第 四个实例中,我们将对“属性设置”进行详细解说,现在大家不必管它;界面右面大面积空白的区域是“代码编 辑区”,我们编写的所有代码都放在这儿。如果看不到这个空白区域,则打开“插入”菜单,插入一个“模块”就 行了。如果“工程资源管理器”已有“模块”,则双击模块名,就能打开“代码编辑区”。 好,现在我们就在这个 VBE 环境下,利用 VBA 语言,来编写我们的第一个工程(即程序) 。 请在“代码编辑区”中输入如下的代码: sub A () msgbox(“你好,世界!”) end sub 注意,代码“msgbox(“你好,世界! !“)”一句中的引号与括号为英文标点。点击工具栏上的黑色三角形的“播放 键”,或按下 F5 键运行这个程序,您将看到一个弹出的消息框。如图 1-2。 代码解说: sub 是 VB 编程中申明一个过程的语句,sub A ( )申明了一个名叫 A 的过程,A 后面跟了一个括号,它的 作用现在大家暂时不用管它。整段程序结尾的 end sub 语句,表示过程“A”在此结束。每一个程序都必需有开 始与结束的标志,所以,从 Sub A ( )到 End sub 就构成了一个完整的“过程”。 Msgbox 是一个函数,它的作用是弹出一个消息框来,它后面括号中的内容就是要在弹出的消息框中显示 的内容。该函数在我们的第二个实例中,将做详细讲解。 本实例的知识扩展: 1、打开 Word,指向工具——宏,再点击“宏”按钮,打开“宏名”对话框。这时,我们就可以看到刚才我们 编写的名叫“A”的宏。选中“A”,点击“运行”按钮,就能运行该宏。 2、同上操作顺序,打开“宏名”对话框,在“宏名”中新输入一个名字“B”(注意没有引号) ,再点击“创建” 按钮,这时就会打开 VBE 编辑器,并已为我们生成了一个名为“B”的空过程。该过程中的绿色文字,就是这 个宏的注释。 (如果我们要对自己所编写的代码进行注释,可在注释语句的前面加上一个英文状态下的撇号, 该注释的语言是不会被程序运行的。 )用这个方法创建过程,可以避免手工输入时疏忽掉程序结尾的 End sub。 好了,实例一到此结束,回顾一下课前的知识点,都掌握了吗?如果觉得没有问题了,就准备进入我们 的第二个实例吧。 从零开始,步入 Word 宏编程的世界(第二讲) 实例二:基本的对话框函数 知识点: 1、认识消息框函数 MxgBox 与输入框函数 Box; 2、什么是常量、什么是变量、申明变量的方法是什么; 3、用“&”符号连接字符串。 想想我们平时与他人谈话时的形式——你提问,他回答;或是他提问,你回答。我们所编写的程序, 在与计算机进行交互的过程中,其形式也是这样的一问一答。所以,几乎所有的编程语言都提供有直接与计 算机进行对话的函数,在 VBA 中,这样的最基本的函数是消息函数“MsgBox”与输入框函数“Box”。 请输入以下代码并运行: ’’’======还有待完善的程序一===== sub B() Dim X X = box(“您的姓名是:“)。 Msgbox( “ 欢迎您“ & X & “朋友!“) End Sub 注意:1、在输入“Msgbox( “ 欢迎您“ & X & “朋友!“)”这行代码时,括号内几个字符串之间有空格,没 有输入空格的话会出错,出错时,代码将以红色显示。2、本程序运行时如果点“取消”按钮,其实会出现 问题,关于对这个问题的解决方法,将在后面讨论。所以,我们先称本程序为“还有待完善的程序”。(朋 友们可以先试一下,看看会出现什么问题?)。 运行效果如图 2-1 与图 2-2。 看到了吗?这就是最简单的与计算机进行对话的效果。 代码解说: 从 Sub B()到 End sub 就是一个完整的过程——“B”。 “Box(“您的姓名是:“)”这句代码是显示一个“输入框”,请您输入自己的姓名。这句代码事 实上就是一个计算机提问,人回答的“对话”过程。其中,“Box”函数的作用就是弹出一个输入框, 等待我们回答计算机的提问