在我的 Word VBA AutoOpen Sub 中,我想检查打开的文档是否已“正常”打开或是否已在受保护的视图中打开。
但是,如果我使用ThisDocument.Application.ActiveWindow
,则如果在受保护的视图中打开了文档,则会引发错误,因为受保护的视图不算作对象ActiveWindow
。
反过来,如果我想使用ActiveProtectedViewWindow.Active
这个,True
如果文档已经在受保护的视图中打开,则返回,但如果文档是在“标准”视图中打开的,则没有ActiveProtectedViewWindow
对象,因此它会引发错误。
是否有任何属性可以检查,以便我立即知道文档是以哪种模式打开的?还是我真的必须处理On Error GoTo
并基本上解决错误?
另外,有什么方法可以更改受保护视图文档的缩放比例吗?我找不到允许这样做的任何属性。
答案1
使用On Error Resume Next
,然后简单尝试一个。如果没有结果,请尝试另一个。
一个简单的例子:
Sub identifyActive()
Dim t As String
On Error Resume Next
t = ActiveWindow.Document.Name & " - not protected"
If t = "" Then
t = ActiveProtectedViewWindow.Document.Name & " - protected"
End If
Debug.Print t ' you probably want to do something else with the result
End Sub