我想为MS Word在启动时显示的空白文档设置ActiveDocument.ActiveWindow.ActivePane.View
属性。在Application.Initialise事件中没有活动文档,并且不会发生Document_New事件。有谁知道如何处理第一份文件或以其他方式保留它?
答案 0 :(得分:0)
您可以使用DocumentChange事件获取它。在初始化事件处理程序之前,您需要设置一个标志来指示您处于启动状态,以便它只响应一次。
Private Sub AppWord_DocumentChange()
If Documents.Count > 0 Then
If InStartup Then
InStartup = False
If Left(ActiveDocument.AttachedTemplate, 10) = "Normal.dot" Then
ActiveDocument.ActiveWindow.ActivePane.View = wdNormalView
End If
End If
End If
End Sub
修改强>
我的猜测是您已将代码添加到Normal.dotm中。如果是这种情况,它将解释为什么你不能在启动时捕获事件。
Word创建的默认空白文档基于Normal.dotm。因此,它所包含的任何代码只会在创建该文档后加载,事件触发后的ergo。这使得Normal.dotm成为事件处理程序的非常差的主机。就个人而言,除了草拟代码以获得问题的答案之外,我还避免使用Normal.dotm!
Word中代码的一个更好的主页是它相当于可以为Excel和PowerPoint创建的加载项,这是一个在启动时加载的模板。它位于Word中定义的文件夹中作为“启动”文件夹(“文件”|“选项”|“高级”|“常规”|“文件位置”)。默认情况下,它是Windows的%APPDATA%\ Microsoft \ Word \ STARTUP。将包含代码的模板放在该文件夹中,然后在>> 之前加载空白文档,并使您能够响应事件。
答案 1 :(得分:0)
这是我实施的解决方案。
Private Sub App_DocumentChange()
' 27 May 2017
Static Done As Boolean
If Not Done Then
On Error Resume Next
If ActiveDocument.Path = "" Then SetView ActiveDocument
Done = True
End If
End Sub