VBA编程的一点感想
Vba是vb的一部分,vb的基础是BASIC,很多人都学过BASIC。这样看来VB和VBA都不应该是完全陌生的东西。清华大学的吴文虎教授在总结C语言时有过一个精彩的论述“C语言主要有4种语句:输入、输出、if、for”,原意不一定是这样(如果有误,是我自己理解的问题)。从我本人学过的汇编语言、BASIC、C语言来看,情况确实是这样,一种编程语言的基本语句都含有这四种功能:输入、输出、if、for。显然,仅仅只掌握这四种语句还无法顺利编程,要想顺畅地编程,还要多看一些别人编好的功能简单的程序,并试着做一些修改,看看程序如何运行,逐步积累编程的感觉。关键的一点是“解决问题的算法,学会用表达式来描述问题”(吴文虎教授语)。我自己后来编了一些VBA程序,仔细回想一下,感觉“算法”确实是编程中的关键,简单问题还感觉不到“算法”的重要,新问题或稍微难一点的问题,就感觉到算法的重要性了。所以,我现在认为,对VBA的编程在学会了编制一些基本的程序后,多看一些吴文虎教授讲授的“程序设计基础”,对编程能力的进一步提高,会大有益处(吴文虎教授的讲课视频在清华大学2003年的精品课程里有)。论坛同仁之中,谁若能提供视频下载,真是善莫大焉。Vba的编程类型可分为两大类:函数(function)和过程(sub)。函数的编程主要依据四种基本语句:输入、输出、if、for,这些和VB、VBA的内容类似,所以函数的编程和VB、C的编程差不多,我们学经济、金融的,对VBA的大部分应用是自定义函数。过程(sub)是VBA编程另一个大类,这一部分涉及到VBA的核心内容:单元格、sheet、文件的对象、属性、方法等方面的内容较多,要细细揣摩。好在VBA有个很便利、快捷的学习方法——“宏录制”,很多VBA编程中的sub问题,可以用“宏录制”先仿真,然后对录制的“宏”进行编辑,最后复制的自己的程序中去。刚开始接触VBA容易被“对象、属性、方法”这些东西搞得晕头转向,但是,经济、金融中应用最多是函数,函数编程比较简单,掌握了这些入门的技能之后,再去做一些其它方面的拓展,就会相对容易一些。
总之,从应用的角度出发,学VBA可以先学函数编程、宏录制,然后再学sub编程。顺便说一句,学习对象、属性、方法等VBA核心内容,赵志东先生的大作《EXCEL VBA基础入门》,是一本比较好的书,我自己从中受益匪浅,这本书我是从“人大论坛上”下载的,感谢提供此书的同学。