为特定 Excel 文件启用宏

为特定 Excel 文件启用宏

(如何)我可以启用宏Excel(2007)文件?

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

在此处输入图片描述

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

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

答案1

即使文件四处移动,您也可以使用数字证书通过受信任的证书对宏项目进行签名加州

事实上目的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)请注意对宏项目进行数字签名不同于受信任的位置

参考:

答案2

我相信这在 Windows 上是可能的(参见其他人的评论)。

在 Mac 上,精细控制似乎不可用(另请参阅Excel 2016 宏 - Windows/Mac 问题)。

为了防止“启用/禁用宏”弹出窗口,您可以转到 Excel -> 首选项 -> 安全 -> 启用所有宏。

但从安全性方面来说这显然不太好。

相关内容