プロが教えるわが家の防犯対策術!

Wordの[ファイル]→[プロパティ]の「作成者」や「会社名」「タイトル」等を一括で削除することは可能でしょうか?

Sub プロパティ削除()
ActiveDocument.BuiltInDocumentProperties(Author) = ""
End Sub

上記のようにすると「作成者」は削除できるんですけど、「Author」の部分を変えて「タイトル」や「会社名」を削除するしかないでしょうか?
全てのプロパティを簡単に削除するコードはありますか?

よろしくお願いいたします。

A 回答 (6件)

こんにちは。



>「プロパティの全て」というふうにできるでしょうか? 「Count」を使ってプロパティの数をカウントしてみましたが、それはできないようで・・・。

エラートラップはしてありませんが、一度で試してみてください。特別な設定していない限りは、全て通るはずです。ドキュメントのバイト数などは再取得されるようですね。

しかし、これでは、原作者名は消えません。その場合は、やはり、『隠しデータの削除』を使うか、もしくは別のマクロとActive X コントロール(Dsofile.dll)が必要になるのではないかと思います。それは、やってみないとわかりません。


Sub プロパティ削除r()
Dim v As Variant
For Each v In ActiveDocument.BuiltInDocumentProperties
 If v.Type = msoPropertyTypeString Then
    v.Value = ""
 ElseIf v.Type = msoPropertyTypeNumber Or v.Type = msoPropertyTypeDate Then
    v.Value = 0
 End If
Next v
 ActiveDocument.Save
End Sub
    • good
    • 0
この回答へのお礼

Wendy02さん、ありがとうございました。
教えていただいたコードで解決しました!
コードの内容はなんとなく分かる程度ですが、頑張って勉強します。

お礼日時:2007/05/29 17:44

ANo.1です


>試していますが、削除できません。
これは以下のURL先にあるオプションの項目にチェックを入れるマクロ
です。([保存時にファイルのプロパティから個人情報を削除する])
http://support.microsoft.com/kb/899877/ja

ですから、マクロを実行してチェック項目をオンにしないと意味が無い
ものですね。
マクロを書いて保存しただけではチェック項目がオンになっていません
から削除されないのです。マクロをお尋ねだったのでヘルプにあるもの
を載せましたが、実際にはオプションの項目をオン/オフするだけです
から、削除をするマクロという意味では、Wendy02 さんの提示したもの
ぐらいしかないのでしょうね。(私も勉強中ですがいまだ向上せず)
    • good
    • 1
この回答へのお礼

>ですから、マクロを実行してチェック項目をオンにしないと意味が無いものですね

今度はうまくいきました。ありがとうございました。

>(私も勉強中ですがいまだ向上せず)

私も勉強中です。早く回答できるくらいに成長したいものです。

お礼日時:2007/05/29 17:53

> なぜだかダウンロードできませんでした



そうですか。。残念です。

オフィスのファイルには、プロパティーの他、様々な場所に
個人情報が埋め込まれてしまいます。例えば、マクロの記録を
すると、

  ' Sample Macro
  ' マクロ記録日 : 2007/5/29 ユーザー名 : Administrator

のような個人情報(ユーザー名に本名を入れていたりした場合)
が記録されてしまいます。このツールはこのようなことろまで
スキャンし、削除してくれるので、データ提出時になにかと重宝
するんですが....

> コードを知りたいのですが・・・。

残念ながらコードは公開されていません。
    • good
    • 0
この回答へのお礼

>このツールはこのようなことろまで
スキャンし、削除してくれるので、データ提出時になにかと重宝
するんですが....

なるほど・・・。コードは公開されていないようなのは残念ですが、
便利そうですね。
Office2002が一部インストールしているために今回は使用できなかったので、また別の機会に使ってみようと思います。

No.3の方の回答で解決しましたが、後は回答順にポイントを付与します。
ポイントは付与できませんが、ありがとうございました。

お礼日時:2007/05/29 17:51

こんにちは。



一応、5まででよいと思います。
試してみてください。なお、これは、Normal.dot 側に入るものだと思います。

Sub プロパティ削除()
Dim i As Integer
For i = 1 To 5
 ActiveDocument.BuiltInDocumentProperties (i) =""
Next i
End Sub


これとともに、ツール-オプション-保存
□保存時にプロパティを確認する

にチェックを入れておくとよいと思います。
    • good
    • 0
この回答へのお礼

Wendy02さん、ありがとうございます。
For i = 1 To 5でできました!

ところで、「5」の部分を、数字ではなく、「プロパティの全て」というふうにできるでしょうか? 「Count」を使ってプロパティの数をカウントしてみましたが、それはできないようで・・・。


他に「For each・・・Next」を使用する方法を試みていますが、どうもうまくいきません。

お礼日時:2007/05/29 11:08

こんばんは。



Office2003/XP 限定ですが、MS 公式のツールが公開されてますよ。
http://www.microsoft.com/downloads/details.aspx? …

参考URL:http://www.microsoft.com/downloads/details.aspx? …
    • good
    • 0
この回答へのお礼

KenKen_SPさん、ありがとうごじます。
なぜだかダウンロードできませんでした(/_;)
Office 2003と同時にOffice2002のPPTを入れていて(Wordは入れていない)、そのせいで製品の確認に失敗してしまいました。

このツールはコードを確認できるのでしょうか? 今回のマクロは勉強のために作成しているので、コードを知りたいのですが・・・。

お礼日時:2007/05/29 11:03

Sub RemovePersonalInfo()


 ThisDocument.RemovePersonalInformation = True
End Sub

「 RemovePersonalInformation 」でVisual Basicのヘルプを参照すれば
出てきます。
    • good
    • 0
この回答へのお礼

enunokokoroさん、ありがとうございます。
コメントや変更履歴のユーザー情報を削除するプロパティのようですね・・・。試していますが、削除できません。コードはヘルプどおりなので、問題ないはずですが。。。
もうちょっと試してみます。

お礼日時:2007/05/29 11:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!