RemovePersonalInformationプロパティというものがある(Word)

RemovePersonalInformationプロパティというものがある

結論だけ知りたければ、コチラをどうぞ。

前回の方法

文書の「作成者」とか「最終更新者」の情報を消す方法として、前回は、

akashi-keirin.hatenablog.com

こういう方法を紹介した。

しかし、これもあまり良い方法ではなかった。

たとえば、

f:id:akashi_keirin:20220215074220p:plain

こういうドキュメント(笑)があったとする。

ぱっと見はわからないが、実はこのドキュメントは、表題のところに

f:id:akashi_keirin:20220215074223p:plain

このように「タイトル」という文書情報(ドキュメントプロパティ)を「挿入」している。(で、「ヘッダー」のところにも同じように「タイトル」を「挿入」しているので、表題を変えたら「ヘッダー」も連動して変わるようになっている。

で、文書情報を見ると、

f:id:akashi_keirin:20220215074226p:plain

このとおり。非常に恥ずかしい状態である!

ここで、前回の方法を用いる。

リスト1
Private Sub test()
  Dim tgtDoc As Document
  Set tgtDoc = ActiveDocument
  Call tgtDoc.RemoveDocumentInformation(wdRDIDocumentProperties)
End Sub

こいつを実行してやる。

すると、当然、

f:id:akashi_keirin:20220215074228p:plain

文書情報は消えている。

しかし!

f:id:akashi_keirin:20220215074231p:plain

おわかりだろうか。

「タイトル」という文書情報を挿入していた箇所が、ただの文字列に置き換わってしまっているのである!

これはいかん!

タンザニアのイカンガーである!

RemovePersonalInformationプロパティ

さて。

そうこうしているうちに、[Document].RemovePersonalInformationというプロパティを見つけた。

有名なのだろうか。

ぐぐってみた。

Document.RemovePersonalInformation プロパティ (Word)

True 場合は、Microsoft Word は、コメント、変更履歴、およびドキュメントの保存時に [プロパティ] ダイアログ ボックスからすべてのユーザー情報を削除します。 読み取り/書き込みが可能な Boolean です。

『Office VBA リファレンス』

なるほど。これなら日本語版でも意味がわかる。

やってみよう。

あっさり解決

スト2
Private Sub test()
  Dim tgtDoc As Document
  Set tgtDoc = ActiveDocument
  tgtDoc.RemovePersonalInformation = True
End Sub

こいつを、先のドキュメント(笑)をアクティヴにして実行!

f:id:akashi_keirin:20220215074234p:plain

(゚Д゚)ハァ?

でも大丈夫!

上書き保存をしてやると、

f:id:akashi_keirin:20220215074236p:plain

ほれ、このとおり。

f:id:akashi_keirin:20220215074239p:plain

挿入した「タイトル」も生きておる!

ずばっと解決してしまった。

もちろん、これは真の解決ではないであろう。

旅はまだまだ続く……。

f:id:akashi_keirin:20220215074324p:plain

未完!

おわりに

とりあえず、

akashi-keirin.hatenablog.com

こいつも、早くも役目を終えてしまった。

用なし

諸行無常

f:id:akashi_keirin:20220213110201p:plain