为特定 Excel 文件启用宏

Jan*_*gen 4 security macros microsoft-excel-2007 microsoft-excel

(如何)我可以在一个Excel (2007) 文件中启用宏吗?

通过信任中心禁用宏安全允许所有电子表格上的宏。我可以将其设置为“禁用所有带有通知的宏”,但 Excel 将自动阻止我的文件中的宏,我必须每次都通过安全警告/选项/启用此内容

在此处输入图片说明

我不想使用受信任位置功能,因为文件在物理位置之间移动。
出于同样的原因,本问题中提到的数字证书不是一种选择。

将文件另存为启用 Excel 宏的工作簿.xlsm扩展名)没有任何区别。

thi*_*a R 5

即使文件四处移动,您也可以使用数字证书来使用来自受信任CA 的证书对您的宏项目进行签名。

实际上,MS Office 中对宏项目进行数字签名的功能的目的是使其从启用了受信任宏的任何位置运行并在没有警告的情况下运行它。

如果没有数字签名,就不可能让它在任何工作站上运行而没有任何警告,因为这违背了围绕宏构建的安全性的全部目的。

以下是对宏项目进行数字签名的方法:

  1. 打开包含要签名的宏项目的文件。

  2. Developer选项卡上的Code组中,单击Visual Basic

  3. 在 Visual Basic 中,在Tools菜单上单击Digital Signature。出现数字签名对话框。

  4. 选择一个证书,然后单击“确定”。

笔记:

a) 如果开发工具选项卡不可用:单击File选项卡。单击Options。单击Customize Ribbon。在自定义功能区列表中,单击Developer,然后单击确定。

b) 如果您尚未选择数字证书或想使用其他数字证书,请单击Choose。选择一个证书,然后单击“确定”。

c) 建议您仅在您的解决方案经过测试并准备好分发后才对宏进行签名:当已签名的宏项目中的代码以任何方式更改时,其数字签名将被删除。但是,如果您拥有以前用于在计算机上对项目进行签名的有效数字证书,则在保存宏项目时会自动对其进行重新签名。

d) 如果您想防止您的解决方案的用户意外更改您的宏项目并使您的签名无效,请在签名前锁定宏项目。您的数字签名意味着您保证该项目自您签名以来未被篡改。您的数字签名并不能证明您编写了该项目。因此,锁定宏项目并不能阻止其他用户用另一个签名替换数字签名。公司管理员可以重新签署模板和加载项,以便他们可以控制用户在其计算机上运行的内容。

e) 如果您创建一个将代码添加到宏项目的加载项,您的代码应确定该项目是否经过数字签名,并应在用户继续之前通知用户更改已签名项目的后果。当您对宏进行数字签名时,获取时间戳很重要,以便其他用户可以在用于签名的证书已过期或在签名后被撤销时验证您的签名。如果您签署没有时间戳的宏,则签名在您的证书有效期内仍然有效。

f) 请注意,对您的宏项目进行数字签名受信任位置不同。

参考: