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,这些问题都无法回避,而一个完善的模板,可以让你的插件开发从起跑线就开始遥遥领先。

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

众筹说明

VBA Editor Addins --> VBE插件模板开发众筹的更多相关文章

  1. 使用 WordPress 插件模板开发高质量插件

    WordPress 插件样板是标准化的,有组织的,面向对象的基础,用于构建高品质的 WordPress 插件.样板遵循编码标准和文件标准,所以你不必自己学习这些,根据注释编写代码即可. 官方网站    ...

  2. Smart Indenter for VBE(64bits smart indent addin for VBA Editor),VBA开发必备的智能排版工具。

    原始出处:www.cnblogs.com/Charltsing/p/SmartIndenter64.html 作者QQ: 564955427 最近更换电脑,改用64位office做开发.VBA代码美化 ...

  3. 从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板

    标题:从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/11155 ...

  4. Create a toolwindow for the VBA editor with .NET(C#).

    原始出处:http://www.cnblogs.com/Charltsing/p/VBEtoolwindow.html 最近有人问起使用C#在VBE插件中创建toolwindow的事情,由于VBE窗口 ...

  5. NET 平台下的插件化开发内核

    .NET 平台下的插件化开发内核(Rabbit Kernel)   每个程序猿都有一个框架梦,曾经在2013年8月15日写过一篇“Koala Framework是什么?我为什么要写这个框架?”的文章, ...

  6. IDEA插件(Android Studio插件)开发示例代码及bug解决

    IDEA插件(Android Studio插件)开发示例代码及bug解决 代码在actionPerformed方法中,有个AnActionEvent e 插件开发就是要求我们复写上述的这个方法即可,在 ...

  7. BeatSaber节奏光剑插件开发官方教程1-创建一个插件模板

    原文:https://wiki.assistant.moe/modding/intro 一.简介 Beat Saber 开发环境:unity2018.C#..NET framework 4.6. 此教 ...

  8. 从零开始实现ASP.NET Core MVC的插件式开发(一) - 使用ApplicationPart动态加载控制器和视图

    标题:从零开始实现ASP.NET Core MVC的插件式开发(一) - 使用Application Part动态加载控制器和视图 作者:Lamond Lu 地址:http://www.cnblogs ...

  9. 从零开始实现ASP.NET Core MVC的插件式开发(三) - 如何在运行时启用组件

    标题:从零开始实现ASP.NET Core MVC的插件式开发(三) - 如何在运行时启用组件 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/112 ...

随机推荐

  1. (摘)linux下yum安装redis以及使用

    1.yum install redis      --查看是否有redis   yum 源 2.yum install epel-release    --下载fedora的epel仓库 3.yum ...

  2. idea打jar包并部署java web项目

    1.idea打jar包 (idea提供界面是jar包方式) 点击package,结束就OK,jar包一般放在target里面 部署项目 1.停止之前的服务: 查到到java的所有进程:ps -ef|g ...

  3. #WEB安全基础 : HTML/CSS | 0x6嵌套标签(图片链接)

    嵌套标签我们已经讲一次了,在0X4.1里,我们把列表嵌套了 你觉得文字链接难看得令人作呕,好,你再也不会有这种感觉了   一如既往,一个html文件和一个存放图片的文件夹 index.html的代码, ...

  4. cesium 之核心类 Viewer 简介篇

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 简 ...

  5. [伟哥开源项目基金会](https://github.com/AspNetCoreFoundation)

    伟哥开源项目基金会 GitHub_base=> 伟哥开源项目基金会 该项目作者为伟哥,GitHub地址:https://github.com/amh1979: 该项目维护者为鸟窝,GitHub地 ...

  6. 或许,挂掉的点总是出人意料(hw其实蛮有好感的公司)

    1:问了有没有考研的打算,为什么: ` 实验室指导自己的两个学长, 他们两个都是不考研党派,当然两个学长本科都进入了不错的公司hw,xm,耳濡目染就自己也就不想去考研了: 跟一些已经工作的程序员聊天, ...

  7. WinServer-FTP搭建

    FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务. FTP是File Transfer Protocol ...

  8. 实战项目中Java heap space错误的解决

    部标GPS通讯系统在上线之后,经过不断调试,终于稳定运行一段时间,后来又遇到了Java heap space错误异常!日志如下: 说明系统中有未释放的对象.如何找出这些未释放对象以及监控JVM堆内存, ...

  9. LeetCode算法题-Distribute Candies(Java实现)

    这是悦乐书的第266次更新,第279篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第133题(顺位题号是575).给定具有偶数长度的整数数组,其中该数组中的不同数字表示不 ...

  10. Error:Cannot run program "svn" (in directory "E:demo\Hello"): CreateProcess error=2,

    file-->settings-->version controller --> subversion