プログラム

VAセキュリティ:変更履歴やコメントを削除(ワードVBA)

mintsでワード文書を提出する場合がありますが、変更履歴やコメントの削除はできていますか?

もちろんです。ただし、メニューが深いところにあって、いちいち確認を求められるのが面倒ですね。

法律事務所では、何よりもセキュリティが大事ですから、簡単にすべての情報を削除できるツールを作りましょう。

ありがとうございます。ついでに「蛍光ペン」も削除してもらえると便利です。

分かりました。いずれも、ごく簡単なコードで実現できそうです。やってみましょう!

概要

クイックアクセスツールバーの赤で囲まれた「消しゴム」形のボタンを押すと、次の処理を行います。

  • 次の情報を削除します。
    • すべての変更履歴(リビジョンマーク)
    • 文書のバージョン情報
    • 作成者や最終更新者などの個人情報
    • Wordから直接電子メールとして送信された場合に付加されるヘッダー情報
    • 回覧用紙情報
    • 校閲のために文書を送信した際に保存される情報
    • 「ファイルのプロパティ」ダイアログボックスに表示される、組み込みおよびカスタムのすべての文書プロパティ
    • 添付されているテンプレートの情報
    • ドキュメントワークスペースの情報
    • インク注釈(手書きのコメントやマーク
    • SharePointサイトなどのドキュメントサーバーに保存されているプロパティ
    • 文書管理ポリシー情報
    • コンテンツタイプ情報
    • 作業ウィンドウのWeb拡張機能に関する情報
  • すべての蛍光ペンを削除します。

ダウンロード

準備

ダウンロードしたファイルを「スタートアップフォルダ」に保存すれば、アドインとして、いつでもマクロを利用できるようになります。(他の使い方もできますが、この方法を推奨します。)

使い方

文書ファイルを外部に送付する前に、クイックアクセスツールバーの「消しゴム」形のボタンをクリックしてください。(それだけです。)

コード

このマクロは、自由に閲覧・編集できる状態になっています。

ファイルをエクスプローラーで右クリックして、「開く」を選択すると、アドイン・ファイル自体を編集できるようになります。その状態から、「開発」-「Visual Basic」をクリックするとマクロのエディターが起動します。

このマクロのコードは、すべて標準モジュールの「Sanatize」モジュールに記述されています。

Sub SanitizeDocumentCompletely()
    'すべての情報を削除する
    Dim result As VbMsgBoxResult
    result = MsgBox("この操作により、文書からすべての蛍光ペン、コメント、変更履歴、プロパティなどが完全に削除されます。" & vbCrLf & _
                    "この操作は元に戻せません。続行しますか?", vbYesNo + vbExclamation, "VAセキュリティ")
    
    If result = vbYes Then
        ActiveDocument.RemoveDocumentInformation wdRDIAll
        MsgBox "文書からすべての蛍光ペン、コメント、変更履歴、プロパティなどが削除されました。", vbInformation
    
        'すべての蛍光ペンを削除する
        ActiveDocument.Content.HighlightColorIndex = wdNoHighlight
    End If

End Sub

ActiveDocument.RemoveDocumentInformation wdRDIAllの「wdRDIAll」を別の定数に変更することで削除する情報を特定することもできるのですが、このマクロでは「wdRDIAll」ですべての情報を削除しています。

著作権表示および変更履歴

このマクロの著作権表示変更履歴は、「ThisDocument」モジュールに記載しています。

コメント

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