对于Excel中包含VBA的文档,大家最恐惧的一件事情便是是否病毒,因此往往把Excel安全级别设置为"中",即对不可靠的来源提醒用户是否启动宏。而对于VBA开发人员来说,最想做的就是使Excel程序启动时不出现提示框,直接进入(在安全级别为中的情况下),如何做到呢?
这时数字签名就派上用场了!
准备工作: 1. 数字签名仅在安装了 Microsoft Internet Explorer 4.0 或其后续版本的计算机上有效。 2. 您需要定制安装Excel,选择数字签名一项。
步入正题: 如果您定制安装Excel,并选择了数字签名一项,则在Office的安装目录下会出现一个新文件 "Selfcert.exe" ,双击它,再打开的窗口中输入的名称即可,这时您已经做了一个数字证书。 在Excel环境中按 ALT+F11 打开VBE编辑器,[工具]-[数字签名]-[选择],选择新建的数字证书。 保存文件。 对于开发者来说主要工作已经做完。对于用户一方要做的就是在第一次打开含有此数字签名的文档时,选择"永远相信源于此的宏"。这样只要是用此证书签名的文档都会被认为是可靠来源,以后也不会再出现"是否启动宏"的对话框了。 大致原理即是这样。
那么为什么用户第一次打开文档时还会出现"是否启动宏"的对话框呢?这是因为数字签名只是对用户身份加以确认,而对数据本身并不进行加密,因此该工作薄还有可能带有病毒。
进一步探讨: 为什么添加数字签名需要 IE 支持呢?这是因为,之所以有数字证书技术,是由于网络信息安全性的日益重视而引起,它的主要作用就是验证通信双方的身份,这在电子商务、政府等领域是十分重要的。而IE就支持这样的技术。而Microsoft却把这一特性引入了Excel,真可以说Microsoft为用户想得非常周到(也可能是由于Excel文档可以在Internet上共享的缘故)。 让您有个感性的认识:打开IE属性对话框,在[内容]标签中有一个[认证]按钮,点击它就会打开证书管理器。在这里您可以管理您的证书。 对于VBA开发人员来说,可能会有这样的问题,如果这个人在另一台机器上开发了另一个产品(比如这个人的家中有一台计算机),且这个产品是针对同样的用户,而又要进行数字签名,是不是必须把这个文档Copy到有证书的那台机器上呢?不必!在刚才的IE选项中,选择您的证书,点击导出,这样证书就会以文件的形式导出。您只要把这个导出的文件分发到您要工作的任何计算机上并安装即可。 关于安装导出的证书文件,一种方法是直接双击该文档,二是通过刚才IE选项对话框中的"导入"按钮,然后按照向导来完成。 如果您想删除某一数字证书,该如何操作呢?对开大部分类型的数字证书可以直接通过数字证书管理器的"删除"来完成。不过有些数字证书在这里是看不到的,不要紧,点击Windows的开始菜单,点击"运行",键入"Regedit",回车。这时便打开了注册表编辑器。在"HKEY_CURRENT_USER\Software\Microsoft\SystemCertificates\"个位置下有几个选项,您看看便知道如何做了。
到现在为止您是不是认为关于Excel的数字签名的主要内容都掌握了呢?非也!虽然您可以为您的Excel文档定制您自己的签名,不过如果您的产品是面向很多的用户,而您还不能确定用户群是谁,就会出现另一个问题,就是用户并不能确定您是否为真正的可靠源,因为其他人完全可以用您的签名做一个数字证书来假冒您,如果他的Excel文档包括后台监视程序或系统破坏程序等,那么这个用户就很有可能成为被攻击对象! 要想真正的做到可靠的来源,还需向独立、公正、可信赖的第三方组织-认证中心CA来申请数字证书。
最后补充: Excel有个可靠来源表,在最开始安装Excel成功时,它是空的,以后根据情况而添加。想删除某个可靠来源可以通过[工具]-[宏]-[安全性]-[可靠来源]标签面板来完成。