• ベストアンサー

VBA 文書プロパティ一括削除(Word)

Wordの[ファイル]→[プロパティ]の「作成者」や「会社名」「タイトル」等を一括で削除することは可能でしょうか? Sub プロパティ削除() ActiveDocument.BuiltInDocumentProperties(Author) = "" End Sub 上記のようにすると「作成者」は削除できるんですけど、「Author」の部分を変えて「タイトル」や「会社名」を削除するしかないでしょうか? 全てのプロパティを簡単に削除するコードはありますか? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 >「プロパティの全て」というふうにできるでしょうか? 「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

kiki7
質問者

お礼

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

すると、全ての回答が全文表示されます。

その他の回答 (5)

回答No.6

ANo.1です >試していますが、削除できません。 これは以下のURL先にあるオプションの項目にチェックを入れるマクロ です。([保存時にファイルのプロパティから個人情報を削除する]) http://support.microsoft.com/kb/899877/ja ですから、マクロを実行してチェック項目をオンにしないと意味が無い ものですね。 マクロを書いて保存しただけではチェック項目がオンになっていません から削除されないのです。マクロをお尋ねだったのでヘルプにあるもの を載せましたが、実際にはオプションの項目をオン/オフするだけです から、削除をするマクロという意味では、Wendy02 さんの提示したもの ぐらいしかないのでしょうね。(私も勉強中ですがいまだ向上せず)

kiki7
質問者

お礼

>ですから、マクロを実行してチェック項目をオンにしないと意味が無いものですね 今度はうまくいきました。ありがとうございました。 >(私も勉強中ですがいまだ向上せず) 私も勉強中です。早く回答できるくらいに成長したいものです。

すると、全ての回答が全文表示されます。
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.5

> なぜだかダウンロードできませんでした そうですか。。残念です。 オフィスのファイルには、プロパティーの他、様々な場所に 個人情報が埋め込まれてしまいます。例えば、マクロの記録を すると、   ' Sample Macro   ' マクロ記録日 : 2007/5/29 ユーザー名 : Administrator のような個人情報(ユーザー名に本名を入れていたりした場合) が記録されてしまいます。このツールはこのようなことろまで スキャンし、削除してくれるので、データ提出時になにかと重宝 するんですが.... > コードを知りたいのですが・・・。 残念ながらコードは公開されていません。

kiki7
質問者

お礼

>このツールはこのようなことろまで スキャンし、削除してくれるので、データ提出時になにかと重宝 するんですが.... なるほど・・・。コードは公開されていないようなのは残念ですが、 便利そうですね。 Office2002が一部インストールしているために今回は使用できなかったので、また別の機会に使ってみようと思います。 No.3の方の回答で解決しましたが、後は回答順にポイントを付与します。 ポイントは付与できませんが、ありがとうございました。

すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 一応、5まででよいと思います。 試してみてください。なお、これは、Normal.dot 側に入るものだと思います。 Sub プロパティ削除() Dim i As Integer For i = 1 To 5  ActiveDocument.BuiltInDocumentProperties (i) ="" Next i End Sub これとともに、ツール-オプション-保存 □保存時にプロパティを確認する にチェックを入れておくとよいと思います。

kiki7
質問者

お礼

Wendy02さん、ありがとうございます。 For i = 1 To 5でできました! ところで、「5」の部分を、数字ではなく、「プロパティの全て」というふうにできるでしょうか? 「Count」を使ってプロパティの数をカウントしてみましたが、それはできないようで・・・。 他に「For each・・・Next」を使用する方法を試みていますが、どうもうまくいきません。

すると、全ての回答が全文表示されます。
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

こんばんは。 Office2003/XP 限定ですが、MS 公式のツールが公開されてますよ。 http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=144E54ED-D43E-42CA-BC7B-5446D34E5360

参考URL:
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=144E54ED-D43E-42CA-BC7B-5446D34E5360
kiki7
質問者

お礼

KenKen_SPさん、ありがとうごじます。 なぜだかダウンロードできませんでした(/_;) Office 2003と同時にOffice2002のPPTを入れていて(Wordは入れていない)、そのせいで製品の確認に失敗してしまいました。 このツールはコードを確認できるのでしょうか? 今回のマクロは勉強のために作成しているので、コードを知りたいのですが・・・。

すると、全ての回答が全文表示されます。
回答No.1

Sub RemovePersonalInfo()  ThisDocument.RemovePersonalInformation = True End Sub 「 RemovePersonalInformation 」でVisual Basicのヘルプを参照すれば 出てきます。

kiki7
質問者

お礼

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

すると、全ての回答が全文表示されます。

関連するQ&A