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