Word 2007で追加されたApplicationオブジェクトのCompareDocumentsメソッドを使用することで、2つの文書を比較し違いを検出することができます。
Option Explicit
Public Sub Sample()
Dim doc1 As Word.Document
Dim doc2 As Word.Document
Set doc1 = Application.Documents.Open("D:\TestFiles\Doc1.docx")
Set doc2 = Application.Documents.Open("D:\TestFiles\Doc2.docx")
Application.CompareDocuments doc1, doc2, wdCompareDestinationNew, wdGranularityWordLevel
End Sub
CompareDocumentsメソッドの引数の説明は下記の通りです(Wordヘルプより)。
名前 | 必須/オプション | データ型 | 説明 |
---|---|---|---|
OriginalDocument | 必須 | Document | 元の文書のパスとファイル名を指定します。 |
RevisedDocument | 必須 | Document | 元の文書と比較される、変更された文書のパスとファイル名を指定します。 |
Destination | オプション | WdCompareDestination | 新規ファイルを作成するか、2 つの文書の違いを元の文書または変更された文書に明示するかを指定します。既定値は wdCompareDestinationNewです。 |
Granularity | オプション | WdGranularity | 変更を文字単位で追跡するか、単語単位で追跡するかを指定します。既定値は wdGranularityWordLevelです。 |
CompareFormatting | オプション | ブール型 (Boolean) | 2 つの文書の書式の違いにマークを付けるかどうかを指定します。既定値は True です。 |
CompareCaseChanges | オプション | ブール型 (Boolean) | 2 つの文書の大文字と小文字の違いにマークを付けるかどうかを指定します。既定値は True です。 |
CompareWhitespace | オプション | ブール型 (Boolean) | 2 つの文書の段落、スペースなどの空白の違いにマークを付けるかどうかを指定します。既定値は True です。 |
CompareTables | オプション | ブール型 (Boolean) | 2 つの文書の表に含まれるデータの違いを比較するかどうかを指定します。既定値は True です。 |
CompareHeaders | オプション | ブール型 (Boolean) | 2 つの文書のヘッダーとフッターの違いを比較するかどうかを指定します。既定値は True です。 |
CompareFootnotes | オプション | ブール型 (Boolean) | 2 つの文書の脚注と文末脚注の違いを比較するかどうかを指定します。既定値は True です。 |
CompareTextboxes | オプション | ブール型 (Boolean) | 2 つの文書のテキスト ボックス内のデータの違いを比較するかどうかを指定します。既定値は True です。 |
CompareFields | オプション | ブール型 (Boolean) | 2 つの文書のフィールドの違いを比較するかどうかを指定します。既定値は True です |
CompareComments | オプション | ブール型 (Boolean) | 2 つの文書のコメントの違いを比較するかどうかを指定します。既定値は True です。 |
RevisedAuthor | オプション | 文字列型 (String) | 2 つの文書を比較するときに変更を行ったと考えられるユーザーの名前を指定します。 |
IgnoreAllComparisonWarnings | オプション | ブール型 (Boolean) | 2 つの文書を比較するときに警告を無視するかどうかを指定します。 |
Sponsored Links