こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

解決済みの質問

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

Excel VBA 2007を使用しています。

ActiveWorkbook.RemovePersonalInformation = True

によって、ブック保存時に個人情報を保存しないようにできますが、

ユーザーインターフェースの操作の「ドキュメント検査」と同様に、ブック保存前に個人情報を削除するにはどうすれば良いでしょうか。

投稿日時 - 2014-02-07 23:00:15

QNo.8465798

すぐに回答ほしいです

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

こんにちは。

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.
===================================

投稿日時 - 2014-02-08 01:35:56

お礼

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

投稿日時 - 2014-02-10 11:38:37

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(1)

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-