Wordの変更履歴箇所を、ExcelあるいはAccessで管理する方法

Office2003Professionalを使っているので、Wordの変更履歴箇所、

具体的には追加、削除、書式変更箇所をそれぞれテーブル管理したいと思っています。

WordとExcelあるいはAccessの連携で、Wordの変更履歴箇所のみを

次のテーブルのように出力できないでしょうか?

具体的にしたいことは次です。

Word 1.doc  1つ目の文章:今日は、晴れていました。

Word2.doc    2つ目の文章:明日は、晴れているでしょう。

次が変更履歴で表示される個所を、Tableで管理するイメージです。

+------------+------------+-------------+-------------+

|  ページ      |該当行       |追加           |  削除         |

|-------------|-------------|--------------|-------------|

|  1             |1行           | 明             | 今            |

|-------------|-------------|--------------|-------------|

|  1             |1行           | ました          | でしょう   |

|-------------|-------------|--------------|-------------|

 

 

質問情報


最終更新日 2019年5月21日 表示 4,914 適用先:
回答
回答
こんにちは。

例えば下記のようなコードでExcelに出力することができます。

Public Sub Sample()
'ActiveDocumentの変更履歴をExcelに出力
  Dim rv As Word.Revision
  Dim i As Long
 
  i = 2
  With CreateObject("Excel.Application")
    .Visible = True
    With .Workbooks.Add
      '見出し
      .Worksheets(1).Cells(1, 1).Value = "ページ"
      .Worksheets(1).Cells(1, 2).Value = "行"
      .Worksheets(1).Cells(1, 3).Value = "タイプ"
      .Worksheets(1).Cells(1, 4).Value = "テキスト"
     
      For Each rv In ActiveDocument.Revisions
        .Worksheets(1).Cells(i, 1).Value = rv.Range.Information(wdActiveEndPageNumber)
        .Worksheets(1).Cells(i, 2).Value = rv.Range.Information(wdFirstCharacterLineNumber)
        .Worksheets(1).Cells(i, 3).Value = GetRVTypeInfo(rv.Type)
        .Worksheets(1).Cells(i, 4).Value = rv.Range.Text
        i = i + 1
      Next
    End With
  End With
End Sub

Private Function GetRVTypeInfo(ByVal rt As Word.WdRevisionType) As String
'変更履歴の種類を取得
  Dim ret As String
 
  Select Case rt
    Case wdNoRevision: ret = "変更されていない箇所"
    Case wdRevisionConflict: ret = "矛盾する変更"
    Case wdRevisionDelete: ret = "削除"
    Case wdRevisionDisplayField: ret = "フィールドの表示方法の変更"
    Case wdRevisionInsert: ret = "挿入"
    Case wdRevisionParagraphNumber: ret = "段落番号の変更"
    Case wdRevisionParagraphProperty: ret = "段落のプロパティの変更"
    Case wdRevisionProperty: ret = "プロパティの変更"
    Case wdRevisionReconcile: ret = "矛盾が解決された変更"
    Case wdRevisionReplace: ret = "置換"
    Case wdRevisionSectionProperty: ret = "セクションのプロパティの変更"
    Case wdRevisionStyle: ret = "スタイルの変更"
    Case wdRevisionStyleDefinition: ret = "スタイルの定義の変更"
    Case wdRevisionTableProperty: ret = "表のプロパティの変更"
    Case Else: ret = "不明"
  End Select
  GetRVTypeInfo = ret
End Function

Excelの制御方法については「Excel オートメーション」や「CreateObject("Excel.Application")」
といったキーワードで検索すれば、参考になるWebページがヒットするかと思います。

この回答で問題は解決しましたか?

役に立ちませんでした。

回答としてマークしていただきありがとうございます。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。今後のサイト改善に役立てて参ります。

この回答の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。