VBA-打开文档后最小化Word

时间:2018-11-03 11:29:22

标签: vba word-vba

在Excel-VBA中,您可以在打开工作簿后最小化Excel应用程序:

Private Sub Workbook_Open()
    Application.WindowState = xlMinimized
End Sub

在Word-VBA中,我尝试了这段代码,但是没有用:

Private Sub Document_Open()
    Application.WindowState = wdWindowStateMinimize
End Sub

打开文档后,应最小化Word应用程序。

3 个答案:

答案 0 :(得分:1)

好吧,经过一些测试,我开始运行它,但是有点奇怪。这似乎是时间问题。

这有效:

在我的测试中,两次使用DoEvents总是可行的。 仅一个DoEvents是不够的。

Microsoft文档中有关DoEvents的信息:

  

提高执行力,以便操作系统可以处理其他事件。

Private Sub Document_Open()
    DoEvents: DoEvents

    Application.WindowState = wdWindowStateMinimize
End Sub

这也不起作用:

所以我考虑过使用API​​过程Sleep并在循环中调用此过程和DoEvents来增加延迟。但这没用。

Private Declare PtrSafe Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As LongPtr)

Private Sub Document_Open()
    Dim index As Integer
    For index = 1 To 5
        DoEvents
        Sleep 50
    Next index

    Application.WindowState = wdWindowStateMinimize
End Sub

答案 1 :(得分:0)

与Excel文档相反,Application.WindowState属性的Word文档指出,只能使用活动窗口来设置Windows状态:

  

无法设置非活动窗口的状态。在设置窗口状态之前,请使用Activate方法激活窗口。

所以也许您尝试先致电Application.Activate,看看是否有帮助。

答案 2 :(得分:0)

  

与Excel文档相反,该文档的Word文档   Application.WindowState属性表示Windows状态只能   设置一个活动窗口:

未处理异常提供了有关Application.WindowState的最佳描述。

Private Sub Document_Open()
    ActiveWindow.WindowState = wdWindowStateMinimize
End Sub