如何使用VB脚本将MS Word应用程序发送到后台



我使用VBA编写了下面的一段代码,该代码创建了一个给定页数的空白MS Word文档。VB函数运行得很好,但问题是当它运行时,尽管wordApplication.Visible = False,它还是会在前台弹出MS Word。由于此函数需要在N个文档的循环中调用,因此Word屏幕的重复闪烁对用户来说非常烦人。

这个问题有解决办法吗?是否可以将应用程序发送到后台,这样它既不会出现在前台,也不会出现在任务栏中,用户可以顺利地进行工作而不会分心。

Function CreateEmptyDoc(lngPages, strNewFile)
Dim wordApplication
Dim wordDocuments
Dim wordDocument
Dim objPage
Set wordApplication = CreateObject("Word.Application")
wordApplication.Visible = False
Set wordDocuments = wordApplication.Documents
wordApplication.WordBasic.DisableAutoMacros
Set wordDocument = wordDocuments.Add
'Msgbox wordDocument.Name
wordDocument.Activate
For i = 1 To (lngPages - 1) Step +1
Set objPage = wordDocument.GoTo(1, 1, i)
objPage.InsertBreak 7
Next
If wordDocument.SaveAs2(strNewFile, 1) = True Then
CreateEmptyDoc = True
End If
wordDocuments.Close(0)
wordApplication.Quit
Set wordDocument = Nothing
Set wordDocuments = Nothing
Set wordApplication = Nothing
End Function

任何建议都会很有帮助。

我怀疑问题是由您不必要地激活文档引起的。尝试:

Function CreateEmptyDoc(lngPages, strNewFile)
Dim wdApp, wdDoc, objPage
Set wdApp = CreateObject("Word.Application")
With wdApp
.Visible = False
.WordBasic.DisableAutoMacros
Set wdDoc = .Documents.Add , , , 0
With wdDoc 
For i = 1 To (lngPages - 1) Step +1
Set objPage = .GoTo(1, 1, i)
objPage.InsertBreak 7
Next
If .SaveAs2(strNewFile, 1) = True Then CreateEmptyDoc = True
.Close(0)
End With
.Quit
End With
Set wdDoc = Nothing: Set wdApp = Nothing
End Function

最新更新