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. Mongodb副本集--Out of memory: Kill process 37325 (mongod)

    1.Mongodb副本集--Out of memory: Kill process 37325 (mongod) 场景描述: 恢复一个22TB数据的mongodb实例的时候. 将备用结点加入mongo ...

  2. C-sizeof和strlen区别,以及sizeof如何计算结构体大小

    sizeof和strlen区别 sizeof是关键字,在编译时就能计算出值,可以计算任何类型 strlen是函数,只有在运行时才能去计算,且只能计算字符型的. 对于数组时,strlen是判断’\0’为 ...

  3. jQuery each和js forEach用法比较

    本文实例分析了jQuery each和js forEach用法.分享给大家供大家参考,具体如下: 对于遍历数组的元素,js代码和jquery都有类似的方法,js用的是forEach而jquery用的是 ...

  4. 前端入门10-JavaScript语法之对象

    声明 本系列文章内容全部梳理自以下几个来源: <JavaScript权威指南> MDN web docs Github:smyhvae/web Github:goddyZhao/Trans ...

  5. 后端开发者的Vue学习之路(四)

    目录 上节内容回顾: npm 介绍 安装 常用命令: 补充: 基于npm的Hello World 项目结构分析 用法迁移 小提醒 ES6语法 知识补充 单文件组件 使用注意: 路由 开启路由 定义路由 ...

  6. 【Dojo 1.x】笔记7 配置对象dojoConfig的内容1:has属性、加载器的属性

    说完了出身,即出身自dojo/_base/目录下的config模块,那就要好好讲讲这对象有什么可以写的属性了. 1. has属性 官方说是用于更好的特征检测的,具体有什么用现在还不得知. 例如: &l ...

  7. 超级强大的socket工具ss,替代netstat

    1.结论:ss 命令比netstat 更强大,提供功能更多,并且性能更高. 2.显示当前系统的socket占用总体宏观情况. ss -s 当已创建的socket数过多时,已经说明系统配置存在问题. 3 ...

  8. iOS----------使用cocoapods遇到的问题

    -bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad ...

  9. 仿9GAG制作过程(五)

    有话要说: 在做完了数据展示功能之后,就想着完善整个APP.发现现在后台非常的混乱,有好多点都不具备,比方说:图片应该有略缩图和原图,段子.评论.点赞应该联动起来,段子应该有创建时间等. 于是就重新设 ...

  10. Centos 7 安装 ifconfig 管理命令

    1. 安装的需求背景 我们知道ifconfig 命令可以用于查看.配置.启用或禁用指定网络接口,如配置网卡的IP地址.掩码.广播地址.网关等,功能不可谓不丰富. 此命令的功能和windows系统的ip ...