提醒:本页面将不再更新、维护或者支持,文章、评论所叙述内容存在时效性,涉及技术细节或者软件使用方面不保证能够完全有效可操作,请谨慎参考!

最近单位收发上来的Excel文件包含有一种宏病毒,常常导致较高安全级别的Excel不能正常打开,会提示如下问题:

该工作簿中含有一种既无法被禁用又无法被签署的宏(Microsoft Excel 4.0 版本宏)。因此,该工作簿无法在“高安全级”下打开。如果要打开此工作簿,请单击“工具”菜单上的“宏”,然后单击“安全性”,再单击“安全性”对话框中的“中”。

之前提示同事使用宏病毒专杀工具进行查杀,基本上被识别的病毒都能被正常清理,但是有些提示不是病毒,或者是残留导致出现这种情况,而且我们又不希望调低安全级别(低安全级别往往会导致病毒乘虚而入),即使你被迫运行了宏程序并正常打开了Excel,若这份Excel再发送给其他人,对于高级别安全设置的Excel依旧打不开,给对方也带来了麻烦。

该工作簿中含有一种既无法被禁用又无法被签署的宏

今天我要介绍的是我编写的一个脚本工具,用于清除Excel表中的所有的宏,包括清理有用没用,病毒或者不是病毒的全部宏程序,从而不调低安全级别而彻底解决这个问题。

清理Excel宏工具

本工具主要清理这些类型的宏程序或者相关属性:标准模块、类模块、窗体、文档代码模块、非内置的引用、宏表、对话框表、名称。

一般是就地清理并保存文档,若遇到加密受保护的表或者代码的话,会将其间所有数据表复制出来新建一张工作簿替换原有的。所有修改的文档的修改日期维持不变。

警告:本工具会清除目标Excel的全部宏程序及相关代码,对于包含正常宏程序的Excel请不要使用本工具。本工具为我利用自己空闲时间编写,现仅提供给大家测试,限于时间仓促以及个人能力有限所以我不保证本软件不含有缺陷(Bug),请在使用前备份你的目标数据文档,对于使用本工具产生的一切后果本人不负任何责任。

首先下载工具[download id="1142"]。运行setup.bat进行安装,对于Windows Vista及以上系统不需要右击以管理员身份运行,待安装程序进行时会提示以管理员权限运行,点击“是”就可以了。

注意:如果你电脑里的安全工具(某某卫士、某某管家、某某杀毒软件)报警的话,请点击允许放行安装,否则将无法正常安装。

默认启动安装后会提示是否安装到 C:\Program Files (以你电脑默认程序文件夹配置为准),若另选其他安装路径,请点击否。

清理Excel宏安装提示 清理Excel宏另选安装文件夹

待安装程序提示安装完成后,你就可以以下面几种方式中的一种使用本程序了。

1. 对Excel文件直接右击选择“清除Excel宏程序”。

清理Excel宏对Excel文件右击清理

2. 对于包含有Excel的文件夹或者磁盘驱动器右击选择“清除Excel宏程序”。(可能时间较长, 不推荐 对包含大量Excel的文件夹或者驱动器进行此类操作)

清理Excel宏对文件夹右击清理

3. 刚才第1、2步还可以使用发送到,右击选择发送到“清除Excel宏程序”。

清理Excel宏右击发送到

警告:使用本工具前请关闭或存档已经打开的Excel工作簿,本工具运行前需要关闭所有Excel以保证清理效果,并且在本工具运行期间不可以再次运行Excel程序。不要对多个已经选择的Excel进行相应操作,否则可能会导致多个清理工具启动冲突。

清理Excel宏不能多选清理

另外要使得程序正常运行,Excel必须启用“信任对于“Visual Basic项目”的访问”,正常情况下本程序启动会尝试自己开启此模式,然后在清理任务结束时恢复原先设置,但是已知可能的Bug是,最后设置不能正常恢复,该设置“信任对于“Visual Basic项目”的访问”的关闭可以提升Excel的安全性,所以建议在清理完成后手动调整该设置为安全值。

(1) 打开您的Excel,新建空白表,点击工具 > 宏 > 安全性。

(2) 选择 '可靠发行商' 选项卡。

(3) 去掉'信任对于“Visual Basic项目”的访问'的勾。

(4) 点击确定关闭对话框。

如果要卸载,请在控制面板,添加删除程序里操作,或者再次运行setup.bat。

下载地址:[download id="1142"]

2013年2月10日更新

根据收集上来的反馈,主要有两点问题:一是调用本工具清理带毒的Excel时容易导致病毒脚本执行;二是本工具容易被安全软件误报为病毒。

所以不建议大家用本工具清理带毒Excel的宏,但可以用来清理非毒的宏程序残留。