以前の記事「【コード】変更履歴の追記箇所に下線を引く(その3) 」のプチ修正版です。
前回の記事では、変更履歴の削除箇所を「取り消し線」、挿入箇所を「下線」という「文字書式」に変換する処理を紹介しました。
今回の記事では、上記に加えて、削除箇所、挿入箇所ともに「赤文字」にするという処理を加えました。
実は最近、Macを使っている方の文章を修正する仕事がありまして、そのときにWordの変更履歴を使ってみました。
ただ、本人に修正箇所を伝えるにあたって、変更履歴付きのWordファイルを渡すのはちょっと違うかな?と思ったわけです。受け手側で変更履歴の表示がどうなるのかわからないし。
そこで、このようにマクロを修正しました。変更箇所をわかりやすくするために赤文字にしてみました。
このマクロでできること
変更履歴の削除箇所を、削除した文字列を表示させて、その文字に「取り消し線」と「赤文字」の書式を設定します。
変更履歴の挿入箇所を、挿入箇所を確定し、「下線」の文字書式を設定します。
(実行前)
以下のように、[すべての変更履歴を本文中に表示]をオンにしています。
すると、以下のように挿入箇所と削除箇所が表示されます。「Word」の文字を削除して「ワード」に書き換えました。
デフォルトの設定で、挿入箇所と削除箇所が紫色で表示されています。
(実行後)
変更履歴はなくなり、文字書式で表示されています。
マクロの解説
17行目と25行目にフォントの色を赤にする処理を追加しました。
それ以外は、前回の記事「【コード】変更履歴の追記箇所に下線を引く(その3) 」のマクロと同じです。
変更履歴のオブジェクトのRangeプロパティに Font.ColorIndex プロパティを設定して文字の色を設定しています。
マクロ
Sub 変更履歴_追記箇所に下線をひくマクロ_4() Dim myRev As Revision '変更履歴の記録をオフにする ActiveDocument.TrackRevisions = False For Each myRev In ActiveDocument.Revisions Select Case myRev.Type '挿入の場合 Case wdRevisionInsert With myRev.Range .Font.Underline = wdUnderlineSingle .Revisions.AcceptAll .Font.ColorIndex = wdRed End With '削除の場合 Case wdRevisionDelete With myRev.Range .Font.StrikeThrough = True .Revisions.RejectAll .Font.ColorIndex = wdRed End With 'それ以外の場合 Case Else With myRev.Range .Revisions.AcceptAll End With End Select Next Set myRev = Nothing End Sub