グレンは、アーカイブされたことを示すためにドキュメントに「マークを付ける」方法を探していました。さらに、マークするそのようなドキュメントがたくさんあったので、それらをロードし、マークを追加し、それらを再度保存する方法が望まれていました。

このようなタスクを実行するには、さまざまな方法があります。違いは、「マーク」がドキュメントにどのように配置されているかによって決まります。明らかに、「アーカイブ」という単語(またはそのような用語)をドキュメントに追加することはできますが、それはドキュメント自体の実際の外観に影響を与え、多くの場合望ましくありません。

ドキュメントに目に見えるマークを含まないソリューションがあります。ドキュメントのプロパティを使用してください。ドキュメントがアーカイブされているかどうかを示すカスタムドキュメントプロパティを設定できます。後でプロパティを検索して、どのファイルが条件を満たしているかを判断できます。

次のマクロは、ディレクトリ(および場合によっては任意のサブディレクトリ)内のすべてのドキュメントをロードし、ドキュメントがアーカイブされたことを示すカスタムドキュメントプロパティを作成または設定します。この場合、カスタムプロパティの名前はArchiveであり、True(はい)に設定されています

状態。

Public Sub SetArchive()

Dim bExists As Boolean

With Application.FileSearch         .LookIn = "C:\"             ' where to search         .SearchSubFolders = True    ' search the subfolders         .FileName = "*.doc"         ' file pattern to match

' if more than one match, execute the following code         If .Execute() > 0 Then             For i = 1 To .FoundFiles.Count                 ' Open the file                 Documents.Open FileName:=.FoundFiles(i)



' Begin document changes

' See if the doc variable exists                 bExists = False                 For Each varItem In ActiveDocument.CustomDocumentProperties                     If varItem.Name = "Archive" Then                         bExists = True                         Exit For                     End If                 Next varItem

If Not bExists Then                     ' Add and set document property                     ActiveDocument.CustomDocumentProperties.Add _                       Name:="Archive", LinkToContent:=False, _                       Type:=msoPropertyTypeBoolean, Value:=True                 Else                     'Already exists, so just set it                     ActiveDocument.CustomDocumentProperties("Archive") = True                 End If

' End document changes

' Force document to be saved                 ActiveDocument.Saved = False                 ' Save and close the current document                 ActiveDocument.Close wdSaveChanges             Next i         Else             ' Could not find any DOC files             MsgBox "No files found."

End If     End With End Sub

マクロを使用するには、マクロの5行目(.LookInで始まる)のディレクトリ指定を変更するだけです。実行されると、Archiveプロパティが作成され、各ドキュメントに設定されます。ファイルの1つをロードして、[ファイル]、[ファイル]の順に選択すると、結果を表示できます。プロパティ|カスタム。アーカイブプロパティがダイアログボックスに表示されます。

このマクロには興味深いことが1つあります。ドキュメントのSavedプロパティをFalseに設定して、ドキュメントを「強制的に」保存する必要があることに注意してください。これを行わないと、カスタムプロパティは保存されません。どうして?どうやらWordは、ドキュメントを保存する理由として、カスタムプロパティへの変更(追加を含む)を認識していません。したがって、SavedプロパティをFalseに強制しない限り、Wordはドキュメントに変更が加えられたことを認識しません。

アーカイブのマーク付けにカスタムプロパティアプローチを使用したくない場合は、このマクロにいくつかの変更を加えて、目的の結果を得ることができます。 「ドキュメントの変更を開始する」コメントと「ドキュメントの変更を終了する」コメントの間のコードを、ドキュメントに対して実行する内容に置き換えるだけです。たとえば、ドキュメントに透かしを配置する場合は、記載されているコードを、透かしを作成して配置するコードに置き換えるだけです。

注:

このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

link:/ wordribbon-WordTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(1647)は、Microsoft Word 97、2000、2002、および2003に適用されます。Wordのリボンインターフェイス(Word 2007)用のこのヒントのバージョンを見つけることができます。以降)ここ:

link:/ wordribbon-Marking_Multiple_Documents [複数のドキュメントのマーキング]