从Outlook打开时的Excel安全设置

时间:2014-12-29 15:52:18

标签: excel vba excel-vba outlook

我在受信任的位置保存了启用Excel宏的工作簿。我试图打开该工作簿并从Outlook运行宏。

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的安全通知会弹出,询问我是否信任该内容以及是否应启用宏。

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

创建数字签名对话框 使用Internet Explorer

查看证书

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

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

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

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

注意如果您尚未选择数字证书或想要使用其他证书,请单击“选择”。选择证书,然后单击“确定”。

备注

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

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

  • 如果您创建了一个向宏项目添加代码的加载项,您的代码应该确定项目是否经过数字签名,并且应该在签名项目继续之前通知用户更改已签名项目的后果。

  • 对数字签名时,如果用于签名的证书已过期或签名后已撤销,则获取时间戳以便其他用户可以验证您的签名非常重要。如果您在没有时间戳的情况下对宏进行签名,则签名在证书的有效期内仍然有效。