Word VBAで編集する時は「変更履歴の記録」をオンにする

みなさん,こんにちは。
シンノユウキ(shinno1993)です。

Word VBAを使用して,特定の文言を挿入したり置換したりしたい場面ってあると思います。

たとえば,本ブログでも紹介した「西暦の後に和暦を追記するマクロ」。このマクロを使用することで,西暦の後に和暦をカッコ付きで和暦を挿入することができます。

ただし,Word VBAで挿入や置換をした場合,一瞬で変更がなされてしまうため(それがVBAを使用するメリットでもあるのですが),どこが変化したのかが分かりづらいのが難点です。

そこで,「変更履歴の記録」をオンにしてマクロを実行すると便利です。今回は「変更履歴の記録」ををオンにすることでどのように便利になるのかを実例付きで紹介し,またWord VBAで変更履歴の記録をオンにするための方法についても紹介します。

Word VBAで編集をする時は「変更履歴の記録」をオンにする

まず,「変更履歴の記録」をオフの状態で,Word VBAを使用して編集した場合にどうなるか見てみましょう。下記の文言について,先に紹介した「西暦の後に和暦を追記するマクロ」を使用した場合についてみてみましょう。

血中コレステロールの増加が心臓病に関連している。このような仮説から,1968年 AHAは食事性コレステロールの摂取量を300mg/日に制限することを推奨し,そのために卵の摂取量を1週間に3個以下にするように強調しました。

しかしその後の研究では,相反する結果が提出されることとなります。食事性コレステロールの摂取量や心血管疾患に関連する種々の交絡因子を調整した結果,食事性コレステロールと心血管疾患との相関性が「弱い」とする研究が増えてきました。それを受けAHAは,2002年にコレステロール摂取量の制限はそのままに卵の個数制限を解除することとなりました。

その後,ついに2013年には食事性コレステロールの量的な制限も取り払われました。AHA/ACCから公表された心血管疾患に関するガイドライン「2013 AHA/ACC Guideline on Lifestyle Management to Reduce Cardiovascular Risk」では,食事性コレステロールに関する推奨事項が設定されませんでした【2】。食事性コレステロールを減らすことがLDLコレステロールを下げるとする根拠は不十分であったことが理由とされています。

文章は,地域医療ジャーナル:卵は戻ってきたか(2020年10月号 vol.6(10))より

まず,「変更履歴の記録」をオフにした状態で,「西暦の後に和暦を追記するマクロ」を使用すると下記のようになります:

ぱっと見,どこが変更されたか分かりづらいですね。
では,「変更履歴の記録」をオンにした状態でマクロを使用してみましょう。下記のようになります:

挿入箇所が赤字かつ下線付きで表示されるようになりました。このように表示できると,どこが変更されたか一目瞭然。わかりやすくなりますね。このように表示できることで,変更箇所の確認や,逆に変更できていない箇所を発見しやすくなるメリットがあります。

Word VBAで「変更履歴の記録」をオンにする

「変更履歴の記録」をオンにすることで上記のようにわかりやすくなるため,WordVBAで編集する処理の最初に,「変更履歴の記録」をオンにする処理を組み込めると便利でしょう。

「変更履歴の記録」をオンにするWordVBAは次の通りです:

Document.TrackRevisions = True

DocumentオブジェクトのTrackRevisionsプロパティをTrueにすることで「変更履歴の記録」をオンにできます。なお,Falseにするとオフになります。実際に使用する際は,DocumentオブジェクトにはActiveDocumentが入ることが多いかもしれません。

なお,TrackRevisionsプロパティを取得することで,Documentオブジェクトの現在の「変更履歴の記録」がオンになっているかオフになっているかを確認できます。これを利用して,①マクロの開始時にオンにして,②終了時に開始時点の状態に戻すといったことも可能です。つまり,下記のようになります:

Sub Main()
    Dim doc As Document: Set doc = ActiveDocument
    Dim docWasTrackingChanges As Boolean: docWasTrackingChanges = doc.TrackRevisions
    
    '「変更履歴の記録」をオンにする
    doc.TrackRevisions = True
    
    '何らかの処理
    
    '元々の文章で「変更履歴の記録」がオンでなかったなら,オフにする
    If Not docWasTrackingChanges Then doc.TrackRevisions = False
    
End Sub

まとめ

今回は下記の2点について紹介しました:

  1. Word VBAで文章を編集する際「変更履歴の記録」をオンにするメリット
  2. Word VBAで変更履歴の記録をオンにする方法

Wordの「変更履歴の記録」は,文章のバージョンを管理するといった使い方よりは,文章整理をする際に便利な機能だと思います。WordVBAを使用する際に限らず,ぜひ活用してみてください。

タイトルとURLをコピーしました