VBA Editor Addins --> VBE插件模板开发众筹

https://www.cnblogs.com/Charltsing/p/VBEAddins.html

QQ:564955427

8月8日测试版功能说明
1、VBE菜单的创建
2、toolwindow的创建及消息监听
3、识别宿主及版本
4、解决非托管资源释放问题
5、Inno Setup安装脚本代码
 
VBE插件是Com Addins的一种,由于此插件可以在任何使用标准VBA代码窗口的软件中使用(例如Office,WPS,AutoCAD,CorelDraw等),所以叫做VBA Editor Addins。此次的众筹模板实现了开发VBE插件的最基本的几个功能,代码近千行,为目前国内首个完整公开源代码的插件模板。
 
VBE插件与VSTO写的所谓vbe插件不同,前者无需信任工程,也无需vsto运行库的支持。
本插件为C#语言开发,同时支持32位和64位 Office等宿主程序。
本插件在VS2017+.NET Framework4.0测试通过。
 
本次众筹的起因是为了推广插件开发技术,希望能够在众筹人员的监督下尽快的完成插件的模板开发。如果没有众筹,也就没有VBE插件模板开发这回事。目前众筹模板的测试版已经开发完毕,但仅在参与众筹的第一批开发者中共享代码,欢迎想学习Com开发技术的童鞋加入众筹。为确保代码不会外流成为某些人的谋利工具,参与众筹的台阶相对较高,请大家谅解。
 
如果大家对VBE插件有什么模板功能要求,无论是否参与众筹,都可以在帖子里面留言以便让开发者尽快了解需求。
 
想参与众筹的QQ与我联系,谢谢支持。
 
VBE Demo插件的菜单界面,如下图(包括CommandBar、CommandBarPopup、CommandBarButton、CommandBarComboBox等)
 
 

上图是CommandBarControl.Click事件封装之后的回调代码
这种封装有两个好处:
1、所有按钮的Click事件都被订阅在同一个函数回调里面,可以通过简单的case分支判断执行,不需要写一大堆click回调函数了。
2、方便资源的释放,统一在CommandBarControlEventHelper类里面实现对事件的管理。

*********************************************************************************

8月9日补记:

今天有人问我这个模板和网上其他人发的那些几十行的例子有什么区别?

这个区别简单的说就是sample和template的区别,也就是例子和模板。前者只是简单的代码示例,后者是真正的商业开发代码。我写的是真正的template,大约近千行代码,涉及的功能不是几十行的sample所能展示的。

对学习C#插件开发的人来说template里面涉及到的singleton模式、IDispose接口、tool window、native window listener、unmanaged com资源释放等等,都是office插件开发涉及到的一些中级技术,不是随便买本书就能抄到的代码。

最后再说一下,写一个VBE插件并不是实现IDTExtensibility2就可以万事大吉了,一个真正的插件涉及到的安装脚本、调试方法、UI界面、com资源管理及释放、快捷键、错误处理等等都是新人在插件开发必经之路中的拦路虎,无论你是搞automation addin、 com addins、xll 还是vsto,这些问题都无法回避,而一个完善的模板,可以让你的插件开发从起跑线就开始遥遥领先。

最后,感谢各位在测试期间的众筹支持,感谢大家,没有你们的支持,这个项目是不能如此之快得与大家见面,谢谢!

众筹说明 

原文地址:https://www.cnblogs.com/Charltsing/p/VBEAddins.html