ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: leolee82

发布一个免费的加载宏工具(开放部分源码)-ExcelDIY

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-4 20:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
loquat 发表于 2023-3-12 23:13
excelpx上的代码下载不了哦

刚上传了最新的,顶楼百度网盘。ExDIY.DLL就是我另一个帖子说的2万行的代码
没有更新日志,看哪里不爽就更新哪里

TA的精华主题

TA的得分主题

发表于 2023-4-4 23:01 | 显示全部楼层
leolee82 发表于 2023-4-4 20:25
刚上传了最新的,顶楼百度网盘。ExDIY.DLL就是我另一个帖子说的2万行的代码
没有更新日志,看哪里不爽就 ...

感兴趣就是你那个DIY.DLL的代码。
这种框架,能在现成的基础上改,是意见开心的事

TA的精华主题

TA的得分主题

发表于 2023-4-4 23:06 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-5 00:59 | 显示全部楼层
loquat 发表于 2023-4-4 23:01
感兴趣就是你那个DIY.DLL的代码。
这种框架,能在现成的基础上改,是意见开心的事



核心的东西是基于2010年写的一个工具栏菜单生成工具,开放代码的,应该也没设密码,你可以参考一下。

方便快捷的工具栏生成工具 - Excel VBA开发 - Excel精英培训网 - Powered by Discuz! (excelpx.com)
工具栏.rar (23.94 KB, 下载次数: 49)


后来就封装到EXDIY.DLL中,主要做了以下修改:
把快捷键的功能由OnKey替换成了keyboard Hook
右键菜单加到默认的右键菜单中显得太长了,又可能会受到其他工具的影响,就改为Ctrl+鼠标或者双击CAP LOCK键单独调出
增加了Redo和Undo功能
封装一些写VBA常用的功能和函数
去年发现用CallWindowProc可以实现通用的回调函数,把原来用接口类实现的回调都改成了回调函数
后来又觉得回调参数多了用数组不爽,自己用C++写了个VBHelper.dll,实现了1-9个参数的回调。顺便搞了个调用stl::sort的接口

VB6做的dll无法支持64位Office,不爽很久了,不能调试鼠标和键盘钩子。现在连Private WithEvents xl As Excel.Application都不支持了。

TA的精华主题

TA的得分主题

发表于 2023-4-5 11:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
leolee82 发表于 2023-4-5 00:59
核心的东西是基于2010年写的一个工具栏菜单生成工具,开放代码的,应该也没设密码,你可以参考一下。
...

用twinBasic吧

TA的精华主题

TA的得分主题

发表于 2023-4-5 11:26 | 显示全部楼层
后期绑定的对象,自己怼ConnectionPoint可以搞事件。
老外有封装专门的后期绑定对象的事件组件EventCol,不过是VB6的,迁移到TwinBasic不难。

TA的精华主题

TA的得分主题

发表于 2023-4-5 11:29 | 显示全部楼层
callback要不用DispCallFunc实现算了,虽然效率低一点

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-5 22:00 | 显示全部楼层

twinBasic支持64位是收费的。
用VB6还写过另外一个2万多行的小软件,VB的代码重用太难了:面向对象支持不行,没函数重载,连对象的赋值都搞了不一样的set。以后用C++(Qt用起来还是很舒服的)或C#了,最近也准备开始看JS

另外VBA中的Callback用CallWindowProc是完全可以的,可以参考这个帖子。64位时注意别用uMsg参数就行
https://club.excelhome.net/threa ... tml?_dsign=c2983c24

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-6 18:11 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
修正了一些bug
增加了ESC关闭VBA创建的窗体的功能
替换DLL文件重新注册即可
ExcelDIY.rar (377.11 KB, 下载次数: 78)

TA的精华主题

TA的得分主题

发表于 2023-4-6 23:07 | 显示全部楼层
leolee82 发表于 2023-4-5 22:00
twinBasic支持64位是收费的。
用VB6还写过另外一个2万多行的小软件,VB的代码重用太难了:面向对象支持 ...

目前64只是一个弹窗,很容易解决。
只是今年的一些高级功能可能比较费劲。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 07:19 , Processed in 0.044871 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表