在Excel-VBA中,您可以在打开工作簿后最小化Excel应用程序:
Private Sub Workbook_Open()
Application.WindowState = xlMinimized
End Sub
在Word-VBA中,我尝试了这段代码,但是没有用:
Private Sub Document_Open()
Application.WindowState = wdWindowStateMinimize
End Sub
打开文档后,应最小化Word应用程序。
答案 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