(如何)可以在一个 Excel(2007)文件中启用宏吗?
通过信任中心禁用宏安全性将允许所有电子表格上的宏。我可以将其设置为“禁用所有带通知的宏”,但Excel会自动阻止文件中的宏,并且每次都要经过“ 安全警告” /“选项” /“启用此内容”:
我不想使用“ 受信任的位置”功能,因为文件在物理位置之间移动。
出于同样的原因,这个问题中提到的数字证书不是一个选择。
将文件另存为启用Excel宏的工作簿(.xlsm
扩展名)没有什么区别。
(如何)可以在一个 Excel(2007)文件中启用宏吗?
通过信任中心禁用宏安全性将允许所有电子表格上的宏。我可以将其设置为“禁用所有带通知的宏”,但Excel会自动阻止文件中的宏,并且每次都要经过“ 安全警告” /“选项” /“启用此内容”:
我不想使用“ 受信任的位置”功能,因为文件在物理位置之间移动。
出于同样的原因,这个问题中提到的数字证书不是一个选择。
将文件另存为启用Excel宏的工作簿(.xlsm
扩展名)没有什么区别。
Answers:
即使文件四处移动,您也可以使用数字证书使用来自受信任CA的证书对宏项目进行签名。
实际上,MS Office中该功能对宏项目进行数字签名的目的是使它从启用了受信任宏的任何位置运行,并在没有警告的情况下运行它。
如果没有数字签名,就不可能在没有任何警告的情况下在任何工作站上运行它,因为这样会破坏围绕宏构建的安全性的全部目的。
您可以通过以下方式对宏项目进行数字签名:
打开包含您要签名的宏项目的文件。
在Developer
选项卡上的Code
组中,单击Visual Basic
。
在Visual Basic中Tools
,单击菜单Digital Signature
。出现“数字签名”对话框。
选择一个证书,然后单击“确定”。
笔记:
a)如果“开发人员”选项卡不可用:单击File
选项卡。点击Options
。点击Customize Ribbon
。在“自定义功能区”列表中,单击“开始” Developer
,然后单击“确定”。
b)如果您尚未选择数字证书或想要使用另一个证书,请单击Choose
。选择一个证书,然后单击“确定”。
c)建议仅在解决方案经过测试并准备分发后才对宏进行签名:以任何方式更改已签名的宏项目中的代码时,其数字签名都将被删除。但是,如果您具有以前用于在计算机上签名项目的有效数字证书,则在保存宏项目时会自动对其重新签名。
d)如果要防止解决方案的用户意外更改宏项目并使您的签名无效,请在对宏项目进行签名之前将其锁定。您的数字签名意味着您保证自签署该项目以来,该项目未被篡改。您的数字签名不能证明您编写了该项目。因此,锁定您的宏项目不会阻止其他用户用另一个签名替换数字签名。公司管理员可以重新签名模板和加载项,以便他们可以控制哪些用户在其计算机上运行。
e)如果您创建了将代码添加到宏项目的加载项,则您的代码应确定该项目是否已进行数字签名,并应在更改之前继续通知用户更改签名项目的后果。对宏进行数字签名时,获取时间戳很重要,以便其他用户可以验证您的签名(如果用于签名的证书已过期或在签名后已被吊销)。如果您在没有时间戳的情况下对宏进行签名,则签名在证书的有效期内仍然有效。
f)请注意,对宏项目进行数字签名与受信任位置不同。
参考文献: