目录
0.序言 (1)
1.基本编程元素 (6)
2.对象 (12)
3.开始编写完整的程序 (19)
4.操作文件 (24)
5.事件 (34)
6.用户窗体 (38)
7.根据VBA制作展示PPT (42)
8.提取Word中未样式化的标题 (51)
9.操作数据库 (55)
10.操作Windows API (61)
0.序言
某圣贤说过,人和动物的最大之不同在于人知道怎么利用工具。VBA就是一种工具,一种可以创造工具的工具。VBA提供了给你充分的自由,做几乎任何其他编程语言或者环境能做的事情,避免重复的手动劳动。当然,有太多人对编程充满了敬畏,认为编程是类似周小川做金融决策,或者爱因斯坦在思考问题那样很玄幻、难以理解的事情,更不用说运用了。但其实,这更多的是误解(我觉得这些误解源自于国内的编程教科书上那些高深莫测的概念和诘屈聱牙的讲解)。事实上,20多年来编程正朝着越来越人性化,越来越容易学的方向发展。VBA,确切的说是VB(我在下面会解释这个微妙的差别)是众多语言中最容易学的,正如其名字一样,又”Visual”,又”Basic”。所以大可不必担心诸如“我没有编程基础”之类的心理障碍。
VBA的全称是Visual Basic for Applications的简称。其意思是开发环境被整合到了某个应用程序的Visual Basic语言。在本教程中特指整合在MS Office 中的VBA。(其余的还有比如VBA for AutoCAD, VBA for CorelDraw)我简单的将一门编程语言分为两个大的部分,第一部分是其语法。语法规定了编程指令执行的顺序和内存的使用方式。尽管如此,语法本身不能解决任何实际的问题,这就好比你知道了英语语法,但是不懂单词和短语,就不能正确沟通一样;另一个部分我称之为“库”,就是其他人写
好了的,可以完成一定功能的东西。你可以调用库的某一个部分来完成自己想做的事情。语法和库在一起合作,最终可以完成复杂的任务。对于VBA来讲,使用的是VB的语法(确切的说是VB6的语法,与目前的VB.Net完全不同,如果你不知道我在说什么,那么就忽略这句话好了),采用的是COM组件这种库,库的功能是让你能操作Office的各种功能(VB也包含一个基本的库,以完成一些常见的操作,比如访问文件,字符串操作,数学运算等。这个库的形式是Func和Sub,而不是COM)。比如代码:
For i = 1 To 100
ActiveWindow.Captain = i
Next
完成的工作是让当前Office组件的窗口标题在一瞬间从1变成2,3, (100)
FOR…NEXT是VB规定的语法,用于循环。这些词语被称为“关键字”,你不能将关键字用于其他用途。而ActiveWindow是指当前活动的Windows窗口,Captain 指窗口标题,这些就是提供Office功能的COM组件。关于COM组件到底是怎么工作的我会在第1章进行更详细的介绍。你可以类似的写出如下的代码:
sum = 0
For i = 1 To 100vbs小程序代码大全
sum = sum + i
Next
就变成了求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举例)
2003和2007的界面完全一样。因为Office2007添加了若干新的功能,所以只有库比起2003来多了些东西,表面上看不出来。在“工程”视图中,右键单击”ThisWorkbook”,然后在菜单中选“插入”->“模块”,就会在主界面出现一片空白。键入我在图中写的代码:
Sub test()
MsgBox "Hello, VBA"
End Sub
然后点击上面的绿箭头,就可以运行它了。看看出了什么?:)这就是你的第一个VBA程序了。记住这个写代码的过程,以后我们会反复用到它。并且我不会再重复。如果你有兴趣,在桌面上新建一个文本文件,将MsgBox "Hello, VBA" 这句放到里面(不要第一句和第三句),然后保存为test.vbs。(注意不是,一定要把默认的扩展名去掉)然后双击这个文件,你又看到了什么?(如果有杀毒软件或者防火墙问你是否执行脚本,请确认允许。这段代码不会带来任何伤害)。
以下是对一些常见问题的回答:
1.宏和VBA是什么关系?广义上来讲,宏就是VBA。我说“一段宏代码”和
“一段VBA代码”是等价的。Office的自动录制功能可以帮你录制一个
宏,实际上就是把你的动作用VBA代码的形式记录下来。狭义上,宏是指一个无参数的非Private的Sub(我会在后边解释什么是Sub),如果手
写代码的话,只有这种Sub才会出现在“宏”那个对话框的列表里。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论