如何在不运行宏代码的情况下查看宏代码?

时间:2017-01-31 07:53:24

标签: excel vba excel-vba

我为一家公司工作,该公司有一个控制和阻止带有某些扩展名的消息的机制,如.doc,.xls,xlsx,xlsm等等。

我们收到很多批准这些消息的请求,因为它们与我们的客户相关,但在我们这样做之前,我们检查附加文件中的代码以查找VBA,但是当我打开它们时,我收到消息“保护的视图文件来自互联网可以包含病毒“如果我继续打开VBA编辑器(ALT + F11),代码就不存在了。

什么都没有。没有工作表,没有ThisWorkBook,没有。一切都是灰色的。因此,如何在不运行潜在恶意宏代码的情况下查看代码并保持受保护模式。

当我在没有通知的情况下启用所有宏或点击“启用编辑”时,它会起作用,但这不是我想要的。

1 个答案:

答案 0 :(得分:3)

您无法在受保护的视图中看到代码(除非有人会分享的技巧。)

但对于部分那么我如何查看代码,而不运行潜在的恶意宏代码 ....这里是解决方案:

使用 Application.AutomationSecurity ,您可以构建/创建一个基本宏,这将允许您在宏禁用模式下打开所有收到的文件。

然后您可以手动阅读代码。 (希望您不要尝试构建代码扫描程序!)

以下是从MSDN

开始的示例
 Sub Security()
    Dim strFile As String
    Dim secAutomation As MsoAutomationSecurity

    secAutomation = Application.AutomationSecurity

    Application.AutomationSecurity = msoAutomationSecurityForceDisable
    '/ Just an example workbook.
    strFile = "C:\Users\username\Desktop\fail-test.xlsm"

    Workbooks.Open strFile

    '/ once the workbook is launced, yoou applicationsetting is restored.
    Application.AutomationSecurity = secAutomation

End Sub