自从Excel引入了宏,让广大Excel用户从许许多多日常繁琐的重复劳动中解脱了出来,但随之而来的问题是用户将面临宏病毒的干扰。现在Microsoft Office 2000 利用MicrosoftAuthenticode 技术,使得开发者可以通过使用数字证书对宏工程进行数字签名。
Microsoft Excel 通过设置“工具”→“宏”→“安全性”,如果打开了的文件或加载的加载项包含有带有数字签名的宏,数字签名就会以证书的方式出现在屏幕上。证书上有宏的来源以及有关该来源的身份和完整性的附加信息,用户就可以根据该宏是否具有可信源列表中开发者的数字签名来决定是否运行宏。
    对于在“安全性”命令的设置中设置“无”的安全级将不受安全保护,文件打开将直接自动运行宏。对于在“安全性”命令的设置中设置“高”、“中”的安全级将在表1分类说明。
1
宏的来源
未签名的宏
打开工作簿,并自动禁用宏。
提示用户启用或禁用宏。
来自可靠来源的签名宏:有效签名
打开工作簿,并自动启用宏。
打开工作簿,并自动启用宏。
来自未知作者的有效签名宏
将显示有关证书信息的对话框。只有在用户选择了信任作者和证书颁发机构后,才启用宏。
将显示有关证书信息的对话框,并提示用户启用或禁用宏。用户可以选择信任开发者和证书颁发机构。
来自任意作者的无效签名宏
警告用户签名无效并自动禁用宏。
警告用户签名无效,并提示用户启用或禁用宏。
来自任意作者的证书过期或作废后的签名宏
警告用户签名已过期或作废,并自动禁用宏。
警告用户签名已过期或作废,并提示用户启用或禁用宏。
 
如何创建自己的数字证书呢?首先运行 Office 2000 安装程序, 在安装程序的“选择功能”屏幕上,展开“Office 工具”。选择“VBA
    工程的数字签名”,接着单击所选内容旁的箭头,然后选择“从本机运行”。
    在“Windows 资源管理器”中找到并双击“C:\Program Files\Microsoft Office\Office中的“SelfCert.exe文件,即可开始创建自己的数字证书。但是因为自己创建的数字证书不是由正式证书颁发机构发布的,所以用该证书签名的宏工程只能作为自签名工程引用。根据用户所在组织使用Microsoft Office 数字签名功能的不同,用户可能不允许使用这样的证书,而其他用户也可能由于安全原因也不能运行你签名的宏。
    通过以上步骤将属于自己的数字证书创建完成了,这时如果你开发好了一个宏程序,就可以通过VBA编辑器中“工具”→“数字签名”进行设置属于你的签名了(对于在Excel
    2000中设置数字签名的工作簿,在Excel
    97中打开将会有工程不能查看的工程锁定警示)。
    此时第一次运行带数字签名的宏程序工作簿时就会出现图1的对话框。将其中的“永远相信来源于此的宏”复选框打勾,那以后Excel 2000会直接运行由此数字签名的工作簿,而不会因为有了宏在打开文件时有烦人的确认。