4

Word 2003 に、開いているドキュメントのプロパティ フィールドを同じフォルダー内のすべての .doc に適用するマクロがあります。コードは一度機能します。フォルダーを作成し、そのフォルダーに 3 つの新しいドキュメントを作成し、ドキュメントを開いてマクロを実行すると、機能します。そのフォルダー内のドキュメントを開いてマクロを再度実行すると、マクロを実行したアクティブなドキュメントのプロパティのみが変更されます。

マクロは、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 回は新しいドキュメントで機能するため、わかりません。

前もって感謝します。

4

1 に答える 1

10

わかりました、私は今それを働いています。Wordには.Savedブール値があり、すでにtrueに設定されていると、使用時に変更が保存されず、 VBAを介してプロパティを変更しても、false.Saveに設定するのに十分な重要な変更としてカウントされないようです。それでもうまくいく.Savedかもしれません。.SaveAsとにかく、.Saved = False前に追加しましたが.Save、今では問題なく動作しています。

ある時点で同じことを熟考する可能性のある人に知らせたかっただけです. これは、ファイルが常に保存されるようにする適切な方法かもしれません。

于 2013-04-10T21:34:19.387 に答える