作者:马维峰 来源:博客园 酷勤网收集 2007-09-09
- Office取得巨大成功的一个重要原因就是VBA,使用VBA可以完成很多事情,基于Excel、Word的VBA小程序不计其数。
- VBA程序员很多是业余程序员,正因为业余,解决的却是工作中需要解决的问题;所以,VBA程序大多都是只是在部门内部或个人使用的小工具。
- 集成了VBA的其他应用程序也很多,但真正能为程序增色的不多。
- 大多数人看到了VBA可以自动化一个程序,可以扩展已有程序,但没有看到在Office中,VBA代码可以是录制的,而不是写出来的,带来的好处是,学习曲线变得非常缓。如果没有宏录制功能,要熟悉某个Office组件的对象模型,绝非一日之功。
- 以ArcGIS为例,ArcGIS扩展必须使用ArcObject,不管是使用VBA也罢,VB也罢,还是C++也罢。但同时,ArcObject的学习不是一天两天可以搞定,对于业余程序员,要使用VBA来扩展ArcGIS,几乎没有可能;专业程序员又不屑使用VBA;而对于公司,如果要基于ArcObject来扩展ArcGIS,选择VBA意味着源码的保护很困难。所以,ArcGIS的VBA就如同鸡肋。
- 不过,学习AO的时候,使用VBA比使用其他语言要容易一些,写几行代码,然后直接运行测试结果,这种交互式的学习应该是最好的学习方法。
- ArcGIS以及AO与Office相比,还有一个很大的差别,就是ArcGIS缺乏中等粒度的对象,例如Word和Excel的Range对象。对于Office开发,可以在对底层小粒度对象一无所知的状况下做很多事情,这就是抽象的力量。常人可以处理的复杂度是有限的,面对数十个对象和几百个对象,后者需要付出的努力不是10倍,而是数十倍或更多,因为在学习过程中,必须可以把这些对象在大脑中很好的组织,以控制其复杂度。
评论
# re: 为何Office的VBA如此成功,ArcGIS的却平平 2006-04-04 15:14 liujun
VBA用来写写ATP程序倒是不错 回复 更多评论
# re: 为何Office的VBA如此成功,ArcGIS的却平平 2006-04-04 17:02 ezwyj
你根本不明白ARCGIS的扩展是什么,
VBA只是语法规则,AO是COM组件,是真门针对GIS处理的,没有专业的GIS处理知道,就不能搞AO
你试想,如果你不会WORD编辑你会用WORD的VBA宏吗?
# re: 为何Office的VBA如此成功,ArcGIS的却平平 2006-04-15 11:49 powermap
我觉得存在就有理由,如果arcgis没有了vba,好像是残缺的。用的人少,并不代表其不成功。到目前位置word和arcgis,一个是大众型应用软件,一个是专业的部门级的地理信息软件,应用群体不一样!
# re: 为何Office的VBA如此成功,ArcGIS的却平平 2006-04-15 12:23 马维峰
@powermap
ArcGIS 的 VBA 本身是不错,而且很多应用使用VBA就可以做很好。
我的意思是VBA和ArcGIS、ArcObject对象模型设计、没有宏录制机制导致了其应用的太少。反观MapBasic,就好一些。
# re: 为何Office的VBA如此成功,ArcGIS的却平平 2006-04-20 14:10 hrent1982
对Mars的“抽象的力量”很赞同,最近开始思考关于“抽象”,如何抽象,觉得抽象是人与人之间交流的最通用的一种方式。当然,在抽象的背后隐藏了很多设计很多思考,确是智慧的结晶。在面向对象中,“抽象”由“封装”来实现,确实如你所言,“抽象”应该具有层次性(这一点AO可能是不及MS系列),在不同层次的对象上实施那些相对底层而言大同小异的操作似乎有些多余,然而对于VBA开发人员来讲确有很大的不同,毕竟人们是以抽象的概念思考问题,而不会在任何问题上都回到1+1=2的纯粹方式上去的:)
# re: 为何Office的VBA如此成功,ArcGIS的却平平 2006-04-20 14:17 hrent1982
不过Arcgis的VBA对代码的保护可以采取另外一种方式——通过实现它的客户化标准接口,将代码封装到dll中(以VB或VC打造,当然是com啦),可以直接挂接到Arc系列软件中去,不过具体自由度有多大我也没有亲自尝试过^_^
# re: 为何Office的VBA如此成功,ArcGIS的却平平 2006-04-20 16:26 马维峰
@hrent1982
这个就是所谓的扩展开发,大多数开发都是这样的。
难度和VBA其实差不多,基本上就是实现一些COM接口,和使用VB扩展Office是类似的。
“抽象的力量”是代码大全里的话,呵呵。
# re: 为何Office的VBA如此成功,ArcGIS的却平平 2006-05-12 21:51 zkjbeyond
会vb的人肯定会用word,excel
但会vb的人,很少知道arcgis.
原文链接:http://www.cnblogs.com/maweifeng/archive/2006/04/03/365350.html

