Word BuiltInDocumentProperties не меняются

В Word 2003 у меня есть макрос, который применяет поля свойств открытого документа ко всем документам в одной папке. Код работает один раз. Если я создаю папку, создаю три новых документа в этой папке, открываю документы и запускаю макрос, это будет работать. Если я открою документ в этой папке и снова запустите макрос, это изменит только свойства активного документа, который запустил макрос.

Макрос находится в модуле шаблона Normal.

Код:

title = ActiveDocument.BuiltInDocumentProperties("Title")
subject = ActiveDocument.BuiltInDocumentProperties("Subject")
author = ActiveDocument.BuiltInDocumentProperties("Author")
manager = ActiveDocument.BuiltInDocumentProperties("Manager")
company = ActiveDocument.BuiltInDocumentProperties("Company")
category = ActiveDocument.BuiltInDocumentProperties("Category")
keywords = ActiveDocument.BuiltInDocumentProperties("Keywords")
comments = ActiveDocument.BuiltInDocumentProperties("Comments")

fileDirectory = ActiveDocument.Path

vFile = Dir(fileDirectory & "\*.doc")

Do While vFile <> ""
    Set wordDoc = Documents.Open(fileDirectory & "\" & vFile)
    With wordDoc
        .BuiltInDocumentProperties("Title") = title
        .BuiltInDocumentProperties("Subject") = subject
        .BuiltInDocumentProperties("Author") = author
        .BuiltInDocumentProperties("Manager") = manager
        .BuiltInDocumentProperties("Company") = company
        .BuiltInDocumentProperties("Category") = category
        .BuiltInDocumentProperties("Keywords") = keywords
        .BuiltInDocumentProperties("Comments") = comments
        .Save
        .Close
    End With
    vFile = Dir
Loop

Я не уверен, что это связано с тем, как я открываю или сохраняю файлы. По крайней мере, если бы он не работал вообще, я бы знал, что код просто неправильный, но так как он работает над новым документом хотя бы один раз... я понятия не имею.

Заранее спасибо.

1 ответ

Решение

Хорошо, у меня это работает сейчас. Слово имеет .Saved логическое значение, которое, по-видимому, если оно уже установлено в true, не будет сохранять изменения при использовании .Save и изменение свойств через VBA, по-видимому, не считается достаточно важным изменением для установки .Saved ложно. Может быть .SaveAs все равно будет работать, хотя В любом случае, я добавил .Saved = False перед .Save и теперь он работает просто отлично.

Просто хотел, чтобы кто-нибудь знал, кто мог бы обдумать то же самое в какой-то момент. Это может быть просто приличным способом убедиться, что файл всегда сохраняется.

Другие вопросы по тегам