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

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

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

次のマクロは、ディレクトリ(および場合によっては任意のサブディレクトリ)内のすべてのドキュメントをロードし、ドキュメントがアーカイブされたことを示すカスタムドキュメントプロパティを作成または設定します。この場合、カスタムプロパティの名前は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つをロードし、ファイルのプロパティを表示することで、結果を表示できます。情報の表示方法は、使用しているWordのバージョンによって異なります。

  • Word 2007を使用している場合は、[Office]ボタンをクリックし、[準備]、[準備]の順に選択します。プロパティ。 Wordは、ドキュメントの上部にドキュメント情報パネルを表示します。 [ドキュメントのプロパティ]ドロップダウンリスト([ドキュメント情報]パネルの左上隅)を使用して、[詳細プロパティ]を選択します。 Wordは[プロパティ]ダイアログボックスを表示します。

  • Word 2010を使用している場合は、リボンの[ファイル]タブをクリックしてから、[情報]、[情報]の順にクリックします。プロパティ|高度なプロパティ。 Wordは[プロパティ]ダイアログボックスを表示します。

使用しているWordのバージョンに関係なく、[カスタム]タブをクリックします。

アーカイブプロパティがダイアログボックスに表示されることに注意してください。

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

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

注:

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

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

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(10312)は、Microsoft Word 2007および2010に適用されます。Wordの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。 link複数のドキュメントのマーキング