功能介绍¶
本文主要介绍杰瑞VBA助手轻量化之后保留的一些功能,以做参考
一、代码行号¶
安装后,可以在设置面板中勾选 打开行号栏,效果如下:
同时在微软端的VBE界面中,当你在工具→选项→编辑器格式里修改了字体的字号和大小之后,行号栏也会同步修改。
如果没有同步修改,你任意选择一个两行以上的代码模块,鼠标定位到第一行,按下ctrl+L就会同步了
二、代码缩进¶
此功能支持在VBE界面中,当你在代码中选中了一段代码,点击功能按钮,即可缩进或取消缩进选中的代码段。
至于这里为什么没有保留缩进线,是考虑到性能的开销,旧版本功能记录里也说明了这个情况
三、代码结构¶
此功能可以帮你快速查看代码的结构,包括函数、公开过程、私有过程、模块、工程、窗体、文档等,双击对应的过程或者节点即可跳转,同时在顶部也可以通过筛选快捷定位到对应的过程或者节点。
四、代码补全¶
在设置界面启用此功能后,当你在VBE界面中敲入代码时,会显示候选字段,比如输入Sub或者其他关键字,会显示代码行或者代码段,敲下快捷键 tab 即可上屏。
五、代码混淆¶
有的时候你写了很多VBA代码,但是希望发送到别人电脑上的时候,别人能正常使用功能,但是不希望别人看懂你的代码(就是一种知识保护),就可以使用此功能,功能界面如下:
混淆前和混淆后的效果如图:
效果就是看上去像乱码,但是可以正常使用功能,另外也可以通过批量混淆界面,将模块,类模块,窗体和文档等代码批量混淆,如下图:
下面对具体的界面介绍一下参数的作用:
底部按钮预览混淆:对当前原始代码执行一次混淆,只显示在右侧“混淆后代码(预览)”,不会写回 VBA 编辑器。批量混淆:关闭当前窗口,并打开批量混淆窗口,用来选择整个 VBA 工程里的多个模块一起混淆。应用到代码:把右侧已经预览生成的混淆代码写回 VBA 编辑器,替换原来的选中代码。取消:直接关闭窗口,不应用任何混淆结果。
混淆强度下拉框:轻度:主要混淆变量名、移除注释和空行,不加密字符串、不混淆数字、不插入垃圾代码。标准:默认选项,混淆变量名、加密字符串、混淆数字、移除注释和空行。强力:开启更多混淆,包括私有过程名、运行时字符串解密器、垃圾代码、诱饵过程、压缩代码等。自定义:手动改动任意选项后会自动切到这个状态。
变量名混淆:把变量名、参数名替换成不易理解的新名字。私有过程名:混淆Private Sub/Private Function/Private Property这类私有过程名。默认不开,避免影响外部调用或事件绑定。命名风格:控制混淆后的名字长什么样,比如中文风格、随机字符、顺序编号、十六进制。字符串加密:把字符串字面量改写成不直观看懂的形式。数字混淆:把数字字面量改写成等价表达式,例如拆成计算结果相同的算式。字符串方式:字符编码拼接:用字符编码表达字符串,不需要额外解密函数。运行时解密器:用 XOR 加密字符串,并注入一个解密函数,混淆更强但代码会更复杂。
垃圾代码:插入不会真正执行的干扰逻辑,增加阅读和逆向难度。诱饵过程:插入不会被调用的伪过程,让代码结构更难判断。移除注释:删除 VBA 注释。移除空行:删除空白行,让代码更紧凑。压缩代码:减少缩进和多余空格,但会尽量避开字符串和续行,避免破坏 VBA 语义。
建议混淆前先备份代码,避免混淆后自己可以看懂的源码也丢失了
六、代码保护¶
工程保护界面可以帮你取消VBA工程的保护,比如常规我们通过VBA project属性设置的密码,用此功能都能破解(仅供学习使用,请勿用于非法用途),另外也可以对自己的代码工程设置高级保护,界面如下:
在第一页里面,可以对当前VBE界面中打开的VBA 工程取消保护,点击一键破解按钮即可。
在第二页里面,可以从本地文件夹中选择xlsm文件,可以取消其对应的保护,点击取消保护按钮即可,也可以设置 高级保护 功能 和取消高级保护,设置高级保护后:
- 无法通过密码查看代码、无法右键打开工程属性
- 常规破解工具无效、只能使用本工具取消保护
如果你勾选了 自动备份原文件 将自动创建备份文件(adv_bak),备份文件会在当前文件所在目录下,高级保护的文件,当你点击模块想要查代码时,会显示 工程不可查看,但是代码逻辑可以正常执行
当你取消某文件的高级保护后,再次打开文件时有可能会显示 包含无效的键,不影响功能使用,一直点击是即可,此功能仅在你误删了未高级保护的文件时才建议使用,否则使用备份文件是更优的方法
七、代码库管理¶
在此功能中,内置了一些常用的代码片段,可以点击分类下对应的字段,查看对应收纳的代码,右侧能实时查看对应的代码片段,代码片段右侧的数字代表使用的次数
在VBE中,你可以通过输入 // 来唤起代码库补全功能,例如输入 //cw 就会弹出如下的界面:
可以通过拼音首字母来快速定位到对应的代码片段,当然也可以可以通过自己定义快捷短语例如 //err 来指定对应的代码片段,当然也可以新增或者保存代码片段,如下图:
对于常用的代码,可以在管理界面点击收藏,这样下次可以直接通过快捷工具栏来调用。
八、代码导入和导出¶
此功能是我最开始尝试和IDE联合的功能,因为一般手动复制太麻烦,所以我往往会建一个临时的bas模块(通常我都是写一个小功能,因此只用一个模块),在设置目录里配置好同步的文件后,就可以通过导入导出功能将VBE中的代码导入到同步的bas文件中,也可以把bas文件中的代码导入出到VBE中,导入时需确认覆盖还是新建,导出默认覆盖原bas文件:
九、删除注释和空行¶
此功能可以帮助你快速将选区内的所有注释和空行进行删除,使代码更紧凑。