使用VBScript关闭Word会留下临时的Word文档

时间:2019-04-22 19:06:16

标签: vbscript ms-word

我无法使用VBScript关闭Word文档。当Word文档(通过脚本)打开时,Word将创建一个临时的〜$文件。例如,打开test.docx还会创建一个名为〜$ test.docx的临时文件。我了解这是正常现象。但是问题是,当我关闭test.docx时,主文档test.docx正常关闭,但是〜$ test.docx仍然打开。由于有许多文件要处理,因此很快就会有大量的这些临时文件。它们在后台显示在任务管理器中。关闭文件时我在做什么错?我正在使用的代码是:

Set objWord = CreateObject("Word.Application")
objWord.Visible = False
objWord.DisplayAlerts = 0
objWord.Documents.Open FilePath 'FilePath previously set

'Do stuff (reading properties)

objWord.Documents.Close 0 'Close opened documents without saving
objWord.Quit
Set objWord = Nothing

1 个答案:

答案 0 :(得分:0)

objWord变量可能是对Word应用程序的“全局”引用,定义在脚本顶部的某个位置。
只要调用程序处于活动状态,该全局引用就会保留在原位,因为在调用程序处于活动状态时,操作系统不会结束自动化应用程序。

在这种情况下,将代码包装在函数中并在其中定义单词对象应该可以解决该问题,因为该对象具有局部作用域,并且不存在于函数外部。

类似这样的东西:

Function DoWordThings(FilePath)
    Dim oWord
    Set oWord = CreateObject("Word.Application")
    oWord.Visible = False
    oWord.DisplayAlerts = 0
    oWord.Documents.Open FilePath 'FilePath now used as parameter to the function

    'Do stuff (reading properties and returning them to the caller of this function)

    oWord.Documents.Close 0 'Close opened documents without saving
    oWord.Quit
    Set oWord = Nothing
End Function