本程序(ExcelMenuDIY)是一个自定义工具栏及菜单的DIY工具(原名为ExcelExtention),主要用于生成自定义工具栏菜单和添加右键菜单,方便调用XLA文件中的VBA程序或外部EXE程序。旨在提高工作效率,以最少的操作、最快的速度、最简单的方式调用自己需要的程序。
这个程序是两年前开始开发的,经过两年的完善及使用,已经能满足自己的要求,好东西不敢独享。
本程序由VB6开发,支持32位excel2003-2013,支持xp和win7、win8系统。所有加载宏均为2007格式,如果需要03格式可发邮件给我或自行转换(转换后需将MenuData中的所有xlam改为xla)。
安装方法:运行install.bat
卸载方法:运行uninstall.bat
主要特色:
1. 通过编辑菜单数据文件MenuData.xls来定义适合自己的工具栏。MenuData.xls文件为工具栏及菜单的数据文件,通过编辑这个文件实现自定义工具栏和添加右键菜单。其中各工作表的内容为:
l ToolbarMenu表:工具栏菜单数据
l PopUpMenu表:工作表右键菜单数据
l SheetLabelMenu表:工作表标签右键菜单数据
2. 启动速度快,EXCEL完全启动后才加载菜单,并且在菜单加载过程中,不影响Excel的正常操作,通过特殊的技术实现了单元格处于编辑状态时暂停加载的功能;
3. 按F6弹出最近的操作列表,方便调用常用的VBA或EXE程序;
4. 按F7弹出最近访问的单元格和工作表。
5. 可自定义菜单项的快捷键,并可更改程序的所有快捷键,更适合喜欢用键盘快捷键的人。
6. 提供了大量VBA开发中的常用功能函数,如:
l 读写保存变量、数组或控件状态到注册表或ini文件
l Ini文件操作类
l ADO读写xls及xlsx操作类
l 通用的进度条窗体;
l 窗体操作类:修改窗体style,图形窗体
l 可以在自己的代码中使用本插件的Undo功能
具体功能:
1. 打开外部XLA或XLS文件;
2. 调用外部XLA文件中的函数或过程,并可指定函数参数;
3. 调用EXE程序;
4. 程序启动时可运行指定程序;
5. 指定菜单项快捷键;
6. 指定菜单项图标。对于office自有图标可指定faceid;对于自定义图标,可把图标的图形文件(如"图标.jpg")放在icon文件夹下,然后在MenuData.xls相应菜单项的faceid中填写"图标.jpg"即可,如果需要透明背景的图标,则需在icon文件夹中增加一个"图标mask.jpg"文件(全黑图片)。
7. 最近的操作列表,默认快捷键F6,按一次弹出最近操作列表,再按一次则执行上次运行的程序,按空格可在列表中所有项中循环选择。相当于EXCEL中重复上次操作F4键功能的强化。
8. 最近访问的单元格和工作表,默认快捷键F7;
9. 鼠标指向菜单项,默认提示为:说明+[函数名],函数名为相应模块的函数名称。
10. 支持调用国外著名插件ASAP_Utilities中的功能,详见MenuData.xls。ASAP Utilities目录下的List of allutilities and their IDs.TXT文件列出了所有功能的ID,将此ID做为ASAPRunProc的参数即可。
11. 集成了徙然客老师xlaclassic 2.0 深圳纪念版的大部分功能,并增强改进了部分功能,同时增加一些自己写程序。
"设置"菜单是程序本身的,不可编辑,说明如下:
1. 设计模式:进入设计模式后,会自动打开"MenuData.xls"文件供编辑,同时此菜单项自动变成"退出设计模式"。在设计模式中,执行菜单项会弹出对话框提示:
l 打开xla/exe文件所在目录
l 跳转到菜单项所在行
l 运行相应的xla/exe;
2. 退出设计模式:自动关闭"MenuData.xls"文件,并更新编辑后的菜单;
3. 设置:程序设置;
4. 管理已打开的VBA程序:用于保存/关闭已打开的XLA加载宏;
5. 打开程序目录:打开ExcelMenuDIY.dll所在的目录;
6. 创建菜单目录(在设计模式才会出现):在dll程序目录下生成相应的菜单结构目录,并自动编号,编号格式为"##-菜单标题",这样更方便管理各种小程序。这个功能很少用,一般都是根据目录中的文件创建菜单;
7. 联系作者:欢迎交流和提交bug;
8. 关于。
自定义菜单示例:
如:在工具栏中添加如下菜单:文件>工作薄>生成workbook(&G)…
type | caption | xlaFullName | action | Parameter | faceid | group | CheckStyleBtn | TooltipText | HotKey |
popup | 01-文件(&F) |
|
|
|
|
|
| file |
|
popup1 | 01-工作薄(&B) |
|
|
|
|
|
| workbook |
|
button2 | 生成workbook(&G)… | 生成workbook.xla | CustomizeNewWorkbook |
|
|
|
| Generate,序列名为表名 |
|
其中:
l popup表示弹出式菜单;
l 1和2表示菜单层次;
l "CustomizeNewWorkbook "是加载宏文"生成workbook.xla "中的VBA函数;
l 具体参数的意义见MenuData.xls中各表中标题栏批注。
注意:表ToolbarMenu和表PopUpMenu中的内容最好以文本格式输入(半角单引号开始)。