跳转至

功能介绍

本文主要介绍杰瑞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文件:

九、删除注释和空行

此功能可以帮助你快速将选区内的所有注释和空行进行删除,使代码更紧凑。