Закрытие Word с помощью VBScript оставляет временные документы Word - PullRequest
0 голосов
/ 22 апреля 2019

У меня проблемы с закрытием документа Word с помощью VBScript.Когда документ 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 голосов
/ 26 апреля 2019

Возможно, переменная 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
...