• ベストアンサー

Excelブック保存前に個人情報を削除

Excel VBA 2007を使用しています。 ActiveWorkbook.RemovePersonalInformation = True によって、ブック保存時に個人情報を保存しないようにできますが、 ユーザーインターフェースの操作の「ドキュメント検査」と同様に、ブック保存前に個人情報を削除するにはどうすれば良いでしょうか。

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

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.1

こんにちは。 RemovePersonalInformation プロパティで操作できる個人情報というのも非常に限定的ではありますが、、、。 お訊ねに対するこちらの理解が十分ではないかも知れませんが、 ブックのファイルプロパティの[作成者]などは、変更・削除可能です。 [前回保存者]は、上書き保存時にのみ、変更のみ可能です。 ですので、これについては、"ブック保存前に個人情報を削除"という訳には行きません。 他に方法がない、と断言できるほどの情報は持ち合わせていませんが、私は知りません。 以下は、ファイルをアップロードする時等に個人的に使っていたものに手を加えたものです。 少しでも参考になることがあればいいのですが、、、。 ' ' ///ブックのファイルプロパティについて ' ' /// [作成者][会社]を削除 ' ' /// [前回保存者]は、削除出来ないので、 ' ' /// 一旦、ユーザー名を(スペース等に)変更して ' ' /// そのまま上書き保存することで、ユーザー名を晒さない Sub Re8465798a()   Dim sUser As String   sUser = Application.UserName   Application.UserName = " "  '  Empty不可!(仮に半角スペースを指定) On Error GoTo ErrOut_   With ActiveWorkbook ' With Workbooks("ブック名") ' With ThisWorkbook ' With Me     With .BuiltinDocumentProperties       .Item("Author").Value = Empty  '  [作成者] '      .Item("Last Author").Value = Empty  '  [前回保存者]消せない!上書き時に再設定される!       .Item("Company").Value = Empty  '  [会社]     End With     .Save   End With ErrOut_:   Application.UserName = sUser End Sub 因みに、 [ドキュメント検査]の実行結果から、一部個人情報の削除を実行した際に マクロの記録を録ってみたら、RemoveDocumentInformation メソッド というのがあることに気が付きました。 マクロの記録で得られたコードが以下。   ActiveWorkbook.RemoveDocumentInformation (xlRDIPrinterPath)   ActiveWorkbook.RemoveDocumentInformation (xlRDIDocumentProperties) こちらで色々試すのはご勘弁、ということで、ヘルプの引用を最後に掲げて置きます。 因みの因みに、こちらxl2010では、未保存データがあったとしても、 保存を促されるのを無視して、[ドキュメント検査]を実行可能でした。 お望みに適わない話になってしまっているようでしたら、適当にスルーしてください。 <以下、引用> Excel 開発者用リファレンス =================================== Workbook.RemoveDocumentInformation メソッド 指定された種類の情報をすべてブックから削除します。 バージョン情報 追加バージョン: Excel 2007 構文 式.RemoveDocumentInformation(RemoveDocInfoType) 式 Workbook オブジェクトを表す変数です。 パラメーター 名前 必須/オプション データ型 説明 RemoveDocInfoType 必須 XlRemoveDocInfoType 削除される情報の種類を指定します。 =================================== XlRemoveDocInfoType 列挙 ドキュメント情報から削除するタイプ情報を指定します。 バージョン情報 追加バージョン: Excel 2007 名前 値 説明 xlRDIAll 99 文書情報をすべて削除します。 xlRDIComments 1 文書情報からコメントを削除します。 xlRDIContentType 16 文書情報からコンテンツ タイプのデータを削除します。 xlRDIDefinedNameComments 18 定義済みの名前を削除します。文書情報からのコメントです。 xlRDIDocumentManagementPolicy 15 文書情報から文書管理ポリシーを削除します。 xlRDIDocumentProperties 8 文書情報から文書プロパティを削除します。 xlRDIDocumentServerProperties 14 文書情報からサーバー プロパティを削除します。 xlRDIDocumentWorkspace 10 文書情報からワークスペース データを削除します。 xlRDIEmailHeader 5 文書情報からメール ヘッダーを削除します。 xlRDIInactiveDataConnections 19 文書情報から無効なデータ接続を削除します。 xlRDIInkAnnotations 11 文書情報からインク注釈を削除します。 xlRDIPrinterPath 20 文書情報からプリンターのパスを削除します。 xlRDIPublishInfo 13 文書情報から発行情報を削除します。 xlRDIRemovePersonalInformation 4 文書情報から個人情報を削除します。 xlRDIRoutingSlip 6 文書情報から回覧先を削除します。 xlRDIScenarioComments 12 文書情報からシナリオのコメントを削除します。 xlRDISendForReview 7 文書情報から [校閲者へ送信] 情報を削除します。 © 2010 Microsoft Corporation. All rights reserved. ===================================

softwarelearner
質問者

お礼

詳細なご教示を頂き、誠にありがとうございました。 早速活用させてい頂き、順調に処理できています。