首次打开时如何检测VBA项目是否被沙盒化

时间:2018-10-26 03:48:17

标签: excel vba ms-word

目标:确定项目在打开时是否被沙盒

在MS Office中,当打开包含VBA项目但不受信任的文档时,用户可以选择“启用内容”。

在启用内容之前打开VBA IDE确认没有空白 资源管理器中的项目(无代码)。

点击“启用内容”会添加另一个项目,这次是代码。无论出于何种原因,“空”项目都会继续存在。模板的名称为NOT TRUSTED.dotm,文档的名称为NOT TRUSTED.docx

Only the highlighted project contains code

注意:“空”项目总是被赋予默认项目名称“ TemplateProject”(而实际项目的名称是使用“工具”>“ ProjectName_Properties”为其赋予的名称)。

问题:

  

有没有一种方法可以检测到空项目 OR   否则 ,确定是否首先在受保护的/   沙盒视图?


我不喜欢任何特定的方法,但是请假设:

  • 没有对VBA IDE的编程访问权限
  • 没有其他项目处于打开状态

编辑:

我认为这种情况会在VBA的Rubberduck插件中导致“意外错误”。打开文档时发生,但附件模板不受信任。这是涉及的所有代码(在Template中):

Private Sub Document_New()
    MsgBox "new"
End Sub

Private Sub Document_Open()
    MsgBox "open"
End Sub

1 个答案:

答案 0 :(得分:0)

在受保护的视图中打开文件时,将弹出一个msgbox(向上显示XL2010)

Private Sub Workbook_Open()
If Application.ProtectedViewWindows.Count > 0 Then MsgBox "opened in a protected / sandboxed view"
End Sub