初学Excel编程,大多数人搞不懂VBA和宏的关系,其实这两样是一回事。VBA是Visual Basic for Application的缩写,通俗说就是用VB对程序进行控制。宏,即Macro,个人认为这个翻译害了一群人,因为它把简单的事情搞高深了。宏的背后其实也是一堆VBA代码,只不过是由系统自动生成的。 VBA和宏既然是同一个东西,都是基于VB代码以丰富Excel的功能。那么马上就会引出另外的疑问。 1. 我们为什么需要宏和VBA? 2. 什么情况下我们需要宏和VBA? 3. 宏和VBA的区别是什么? 首先,我先回答第一个问题:“我们为什么需要宏和VBA?” 并非想要上纲上线,但是从宏观的角度看,我认为,这是因为世界上不存在完美的事物,同样也不存在完美的软件。虽然微软通过升级在不断地完善Office系列软件的功能,使其标准功能已可以满足日常绝大部分的应用,但也逃不过这个规律。于是微软便聪明的整合了宏和VBA到它的产品中,给用户留下了可以自行去定义属于自己需求的软件的可能性(多说一句,WPS还需要继续努力啊,在这点上还差的太远了)。 那么,什么情况下我们需要宏和VBA呢? 形象的说,“宏”像一个机器人,VBA是用来制作宏这个“机器人”工具和零件。当我们遇到下列问题时,我们就可以想到使用它们了(可能不全): 1. 劳动强度大,重复性高的工作,比如每月报,周报等。 2. 对Office本身一些功能的细节控制与完善,如数据透视表(Pivot Table)等。 3. 和其它系统的交互,如数据库系统 。 4. …… 所有这些,我会在今后的文章中陆续讲到,也希望大家持续关注。 值得注意的是,宏的录制和VBA的编写是需要时间的,一定要权衡是否需要做一个宏或者VBA。 最后,VBA和宏的区别是什么? 刚才已经提到了,“宏”像一个机器人,VBA是用来制作宏这个“机器人”工具和零件。如果再进一步说明,宏就像是一个录音机或者录像机,只是它所录制的是你的操作自动制作一个“机器人”给你。当你需要重复操作的时候,只需要按一下启动键,“机器人”就会开始干活儿,而你则可以喝茶,抽烟,喝酒,聊天, XXOO… … 听起来很美是不是?仿佛不论你是否掌握VBA编程技巧,你都能利用宏去制造“机器人”。但是,你必须掌握VBA,这是因为: 1. 电脑不是人脑,至少目前还取代不了,有些时候一个微小的差别就会使你的宏失效,比如说文件名和文件结构的改变等。使得你尽心费力做好的宏可以被重复使用的可能性大大降低。 2. “机器人”出了故障,你必须知道怎么修。 3. “机器人”中可能会存在很多可以被其它“机器人”重复使用的“零件”,只有掌握了VBA,你才能做到自己建造“机器人” 虽然还有很多细节性的东西没有说到,但从我的经验来看,太长的文章看起来费劲,所以我也先在这里结尾了。希望这篇文章已经能够大体回答文章开头的疑问。其它的细节我会在今后的文章中一点一点的补充,也希望大家持续关注。
该贴已经同步到 zhangnay2008的微博 |