Word VBA:如何检查“焦点”窗口是否为受保护的视图

Word VBA:如何检查“焦点”窗口是否为受保护的视图

在我的 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

相关内容