本帖最后由 leolee82 于 2022-1-26 21:24 编辑
下载地址:https://gitee.com/leolee82/ExcelDIY
大家如果喜欢开放源码的可以参考10年前的版本,那时是在VBA里做的,但功能仅限于生成工具栏和右键菜单。链接如下:http://www.excelpx.com/forum.php ... d=157469&extra=
详细说明见使用说明.docx
除ExcelDIY.dll外,集成的加载宏工具都没有加密(加密也没用,哈哈),没有使用说明,实在没时间写,基本上看一眼或试一下就知道是啥功能了,也可查看源码。为操作方便,常用的功能(右键菜单)都是基于当前选择区域进行操作。
ExcelDIY主要是为经常用或初学VBA的朋友提供方便,方便管理自己常用的VBA程序,为自已的程序增加菜单、快捷键、UNDO/REDO功能、读写ini文件、进度条等常功能。同时,也提供了大量常用或不常用的函数供VBA调用。用不到的加载宏都可以删除,以免看着那么多的没用功能心烦。
介绍 本程序是一个用于自定义Excel工具栏、菜单及快捷键的免费DIY管理工具(不需要注册,随便用),主要用于生成自定义工具栏菜单和添加右键菜单,方便调用XLA文件中的VBA程序或外部EXE程序。除设置菜单无法修改外,内置快捷键和其他菜单均可删除或修改,让初学者也可以随心所欲打造自己的宏工具集。旨在提高工作效率,以最少的操作、最快的速度、最简单的方式调用自己常用的程序。 本程序由VB6开发,支持32位Excel2007及以上的版本和WPS2019(需安装VBA组件),支持Windows Vista及以上的操作系统(XP应该也是支持的,没测试过)。如果需要支持Excel2003,可通过[文件]->[Excel文件格式批量转换]自行转换加载宏文件(包括MenuData文件)。由于没有大量的业余时间,且32位Excel完全满足作者工作需求,因此无64位Excel的支持计划。数据量大到32位Excel无法支持的话,建议上数据库或专业软件。 十多年来作者在工作中一直在使用和优化改进,ExcelDIY.dll中的核心功能已稳定运行多年。由于行业问题,作者仅对自己一些常用的加载宏(右键菜单和已设置快捷键的加载宏)不断进行改进和优化。 由于内部用了SetWindowsHookEx函数,可能被杀毒软件误认为病毒。 如果本工具对您有所帮助,您可以在能力范围内,通过点击下载页面下方的捐赠按钮对作者表示支持。无法开通捐赠功能,算了。用起来还可以的话,点页面右上的星星支持下吧
主要特色- 通过编辑菜单数据文件MenuData(excel文件去掉了扩展名)来定义适合自己的工具栏和右键菜单。其中各工作表的内容为:
- 1)ToolbarMenu表:工具栏菜单数据,由于不方便访问(至少点3下鼠标),一些不常用的功能或已设置快捷键的功能建议放这里;
- 2)PopupMenu表:工作表右键菜单数据,为避免与其他插件产生冲突,加快响应速度,采用独立的右键菜单,不集成在Excel内置菜单中。可按[Ctrl+右键][Shift+右键]或[双击CapsLock]弹出右键菜单,也可以在设置中修改按键;
- 1)连续按两次F6执行列表中的第一项,也就是最近一次使用的功能;
- 2)按序号1-9或字母快捷键A-Z执行相应的功能;
- 3)按空格可在列表中所有项中循环选择;
- 4)可在设置中修改默认快捷键。
- 按F7弹出[最近的访问],即最近访问的单元格和工作表,操作与[最近的操作]类似:
- 1)连续按两次F7跳转到上一个单元格;
- 2)按序号1-9或字母快捷键A-Z访问相应的单元格;
- 3)按Shift+序号1-9或字母快捷键A-Z访问相应的工作表;
- 5)可在设置中修改默认快捷键。
- 使自己的VBA代码支持撤销(UNDO)和恢复(REDO)功能,并在[最近的操作]窗口中访问。多次调用同一VBA程序可多次撤销(UNDO)和恢复(REDO),不破坏Excel内置的撤销(UNDO)和恢复(REDO)。仅支持对单元格内容和格式的修改,其他更复杂的操作可自己写函数并注册到撤销(UNDO)和恢复(REDO)功能;
- 自定义菜单项的快捷键,更适合高强度使用Excel的人:
- 1)快捷键支持Ctrl、Shift、Alt,并且可覆盖Excel中的快捷键;
- 2)独创的[连续快捷键]功能,目前最多连三次。用于设置近似功能的快捷键,例如复制选区单元格总和分为复制公式相加、复制数值连加和复制结果3个近似功能,即可设置快捷键为Ctrl+Shift+C、Ctrl+Shift+C+C、Ctrl+Shift+C+C+C。
- 提供了大量VBA开发中的最常用的功能函数,在VBA中使用一两行代码即可使用如下功能:
- 1)读/写变量、数组或控件状态到ini文件(GetSettingFromIni和SaveSetting2Ini系列函数);
- 2)读/写窗体所有相同类型控件状态到ini文件(GetControlsSettingFromIni和SaveControlsSetting2Ini函数);
- 3)通用的进度条窗体(PrepareProgressBar函数);
- 4)使VBA中的List控件支持鼠标滚轮(clsEnableMouseWheel类);
- 5)使VBA窗体可调整大小(UserFormSizeable函数);
- 6)使控件大小和间距随窗体大小变化(DockControlVBA);
- Excel启动时可运行多个指定功能;
- 其他常用或不常用函数,如字符串、数组、文件、窗口、Excel、邮件操作等函数。也有些较复杂的功能函数,如批量发邮件相关的、不同格式的多个工作薄取数。详见F.cls。
- WPS支持:运行WPS支持.reg。注意WPS只对ASAP_Utilities的32位版本(dll版本)支持的好。
- 1)运行WPS支持.reg;
- 2)安装WPS VBA模块;
- 3)注意WPS只对ASAP_Utilities的32位版本(dll版本)支持的好。
安装教程右键以管理员身份运行install.bat,注册成功后打开Excel即可。如注册失败,可将install.bat中的REM去掉(注册msaddndr.dll),重新运行。
"设置"菜单说明- "设置"菜单是程序内置的,不可编辑;
- 设计模式:进入设计模式后,会自动打开"MenuData"文件供编辑,同时此菜单项自动变成"退出设计模式"。在设计模式中,执行菜单项会弹出对话框提示: 1)打开xla/exe文件所在目录; 2)跳转到菜单项所在行; 3)运行相应的xla/exe;
- 退出设计模式(设计模式时):自动保存并关闭"MenuData"文件,更新菜单;
- 程序设置:
- 1)设置“最近的操作”和“最近的访问”的快捷键;
- 2)设置“最近的操作”列表项的最大数量;
- 3)设置“最近的访问”列表项的最大数量;
- 4)可撤销(UnDo)的最大次数的;
- 5)正在运行的XLA最大数目,通过本程序运行的加载宏的最大数量,超过这个数则关闭最先打开的加载宏,防止因打开太多导致Excel响应过慢;
- 6)是否添加"最近的操作"菜单到右键菜单;
- 7)启用最近的访问功能,以及列表项的最大数量;
- 8)是否添加"最近的访问"菜单到右键菜单
- 管理已打开的VBA程序:用于保存/关闭已打开的XLA加载宏;
- 打开程序目录:打开程序所在的目录;
- 创建菜单目录(设计模式时):在dll程序目录下生成相应的菜单结构目录,并自动编号,编号格式为"##-菜单标题",这样更方便管理各种小程序。这个功能很少用,一般都是根据目录中的文件创建菜单;
- 联系作者:欢迎交流和提交bug;
- 关于。没啥用。
其他说明: - 调用外部XLA文件中的函数或过程,并可指定函数参数;函数返回值不为0则设置菜单项状态为Checked;
- 通过MenuData中的SilenceAction参数,控制在运行函数或过程前是否设置Excel的以下属性以提高运行速度。对于无模式窗体要特别注意,因为无模式窗体加载完过程立即结束,这个要在自己的程序中控制:
DisplayAlerts = False
EnableEvents = False
ScreenUpdating = False - 指定菜单项图标。对于office自有图标可指定faceid;对于自定义图标,可把图标的图形文件(如"图标.jpg")放在icon文件夹下,然后在MenuData相应菜单项的faceid中填写"图标.jpg"即可,如果需要透明背景的图标,则需在icon文件夹中增加一个"图标mask.jpg"文件(全黑图片);
- 鼠标指向菜单项,默认提示为:说明+[函数名];
- 支持调用国外著名插件ASAP_Utilities中的功能,详见MenuData。ASAP Utilities目录下的List of all utilities and their IDs.TXT文件列出了所有功能的ID,将此ID做为ASAPRunProc的参数即可;
- 集成了徙然客老师xla classic 2.0 深圳纪念版的部分功能(除保留了John Walkenbach的一些加载宏供学习外,国内的大神的那些都删除了),改进了本人常用的功能,同时增加了一些自己写的常用程序。
补充内容 (2022-2-12 13:06):
最近才发现gitee与github不一样,下载居然还需要注册。同时,由于很多人反映安装问题,制作了安装文件。以后只在百度网盘更新:
链接:https://pan.baidu.com/s/1USpadblcG6-RuvTeoMnx5Q
提取码:dzq5
补充内容 (2022-2-16 21:37):
修正打开受保护视图文件时延迟加载的bug
增加SQL函数
增加Sort系列函数,调用C++STL中的排序函数,QSort系列暂时不删除
Callback换成自己写的
链接:https://pan.baidu.com/s/1ARKlR81TowwjosDvkAzUZg
提取码:6ycd
补充内容 (2022-2-16 21:44):
VBA窗体支持鼠标滚轮功升级,参考VBA UserForm MouseScroll_DEMO,并修正了非模态对话框不能用的BUG
增加鼠标悬停激活VBA窗口功能,更加方便日常操作。默认开启,可从设置中关闭。
补充内容 (2023-4-4 20:19):
将菜单数据以二进制形式存储到MenuData文件夹中,提高了读取速度N倍
连续快捷键的功能取消了最多三次的限制
部分函数名称有改动
增加了一些VBA插件
https://pan.baidu.com/s/1KeB5zSLX6xGaaWoGoClP8A?pwd=4axg
补充内容 (2023-4-6 18:13):
修正了快捷键不小心新搞出来的bug
增加了ESC关闭VBA创建的窗体的功能
替换DLL文件重新注册即可,位于19楼 |