0


Office开发,选VSTO,还是VBA,Python行吗?

Office开发,选VSTO,还是VBA,Python行吗?

1、Office是基于COM的

2、所有与Office相关的开发都是基于其COM接口,VBA也不例外。

3、VB6开发的Office加载项,与C#、Python等开发的加载项,都是二进制的,类似DLL,可以加载到Office进程空间。拿二进制的加载项和VBA比性能,都是耍流氓。

4、VBA图形化了Office的COM接口,是现成货里功能最全,使用上最方便,门槛也最低的。VBA与VB共享一套内置函数和虚拟机,无需安装额外的开发环境,生人可从录制宏开始,从现象到本质,一路学起来。拖一拖,点一点,比其他工具更容易激发出编程兴趣。其他开发工具可以直接借鉴VBA来了解Office的COM接口。

5、VBA真正牛逼的,不是VBE的智能提示,也不是人家通俗易懂的语法,更不是所谓花枝招展的神技能,而是VBE的人机交互。

VBE的解释器,将Windows的人机交互发挥到了极致,至今VS、VIM等编辑器,都只能望其项背。如果不理解Windows的人机交互,就无法理解Linux门下众多伸手党傻吊般的自信,当然更无法理解VBA为啥比很多码手年龄都大,还宝刀未老,说了N遍要被死,就是老不死。

VBA慢?人家慢是有道理的,你使用Office的GUI元素时,后台要处理若干窗口消息之类的不说,人家可是趁热给你翻译源码(相当于单步调试,但性能也不差啊),还要随时等你发号施令(暂停,修改,继续,再停,再改...,你VSTO来个?你Python也来个撒?VB6被很多人死硬了,但是人家却可以!因为从4.0,VB就是VBA了,VB的真身是VBA,记住了哈)。VBA慢不是因为解释器,而是你不知道如何让VBA语句变成二进制!嗯,绝对是这个原因!

VBA咋快?自然是编译的最快,编译的代码越底层越快!废话,这不VBA没法编译嘛?编译了还是VBA吗?其实VBA是支持编译的,因为VB就是VBA啊。只需要改动1项注册表,在VBE中就可以编译VBA代码了。

所以,VBA开发Office的正确方式是解释和编译的组合,既能兼顾人机交互,又能保证性能。更为关键的是,VBA编译的代码,不仅没有加载项启用的麻烦,还可以多线程和异步哦!

6、VB6只适应32位系统?搞笑,提个线索:64位Office上的VBA使用64位API,改了好多代码?

说VB不行的,是你不晓得咋拿锄头。锄头是啥?锄头就是C。VB就是C在Window上的图形化定制版本。

7、这下晓得了哇,再总结下:

Office加载项,类似于动态加载DLL那样的功能,是二进制的。非VBA要和Office捆绑部署,都要通过加载项模式。

VBA才是Office环境下,正儿八经的开发语言。欢迎关注BtOfficer,获取更多VB/VBA/Office高阶开发知识,也可关注其他平台同名号,获取更多不同维度的内容。

标签: vb6 vba vsto

本文转载自: https://blog.csdn.net/btrong003/article/details/118692545
版权归原作者 BtOfficer 所有, 如有侵权,请联系我们删除。

“Office开发,选VSTO,还是VBA,Python行吗?”的评论:

还没有评论