Excel安全设置从Outlook打开时

我有一个Excelmacros启用工作簿保存在一个受信任的位置。 我正试图打开该工作簿并从Outlook运行macros。

Sub run_Excel_Macro() Dim App As Excel.Application Dim wkbk As Excel.Workbook Set App = New Excel.Application App.Visible = True Set wkbk = App.Workbooks.Open("C:\file.xlsm") App.OnTime DateAdd("s", 5, Now()), wkbk.Name & "!macro" Set App = Nothing Set wkbk = Nothing End Sub 

我遇到的问题是,Excel的安全通知会popup,询问我是否信任内容以及是否应启用macros。

为什么安全通知popup? 我怎样才能解决这个问题?

一种select是为您的macros创build一个数字签名 : https : //support.office.com/en-ca/article/Digitally-sign-your-macro-project-956e9cc8-bbf6-4365-8bfa-98505ecd1c01

由于您创build的数字证书不是由正式的可信证书颁发机构颁发的,因此使用此类证书签名的macros项目称为自签名项目。 Microsoft Office仅在自签名证书已添加到“证书 – 当前用户”存储中的“受信任的根证书”文件夹的计算机上信任自签名证书。

创build自签名证书Windows 7,Windows Vista或Windows XP

  • 单击开始,指向所有程序,单击Microsoft Office,单击Microsoft Office工具,然后单击VBA项目的数字证书。
  • 出现创build数字证书对话框。
  • 在您的证书名称框中,键入证书的描述性名称。
  • 点击OK。
  • 当SelfCert Success消息出现时,单击OK。

创build数字签名对话框使用Internet Explorer查看证书

要查看个人证书存储区中的证书,请执行以下操作:

  • 打开Internet Explorer。
  • 在工具菜单上,单击Internet选项,然后单击内容选项卡。
  • 单击证书,然后单击个人选项卡。

在Excel,PowerPoint,Publisher,Visio或Word中对macros项目进行数字签名

  • 打开包含您要签名的macros项目的文件。
  • 在“开发工具”选项卡的“代码”组中,单击“Visual Basic”。
  • 在Visual Basic中的工具菜单上,单击数字签名。
  • 数字签名对话框出现。
  • select一个证书,然后单击确定。

注如果您尚未select数字证书或要使用其他证书,请单击select。 select一个证书,然后单击确定。

笔记

  • build议您仅在您的解决scheme已经过testing并准备好分发之后签署macros:当签名macros项目中的代码以任何方式更改时,其数字签名将被删除。 但是,如果您拥有以前用于在计算机上签名项目的有效数字证书,则保存macros项目时会自动重新签名。

  • 如果要防止解决scheme的用户意外更改macros项目并使签名无效,请在签名之前lockingmacros项目。 您的数字签名意味着您保证该项目自签署以来未被篡改。 您的数字签名不能certificate您编写了该项目。 因此,locking您的macros项目不会阻止其他用户使用另一个签名来replace数字签名。 公司pipe理员可以重新签署模板和加载项,以便他们可以控制用户在计算机上运行的用户。

  • 如果您创build了一个将代码添加到macros项目的加载项,则代码应该确定该项目是否进行了数字签名,并且应该在签名项目继续之前通知用户更改签名项目的后果。

  • 当您对macros进行数字签名时,获取时间戳很重要,以便其他用户可以在用于签名的证书已过期或签名后已被吊销时validation签名。 如果您签署了没有时间戳的macros,签名在您的证书的有效期内保持有效。