今だけ人気マンガ100円レンタル特集♪

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

ActiveWorkbook.RemovePersonalInformation = True

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

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

このQ&Aに関連する最新のQ&A

A 回答 (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.
===================================
    • good
    • 0
この回答へのお礼

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

お礼日時:2014/02/10 11:38

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

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

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

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

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

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

Aベストアンサー

こんにちは。

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

こんにちは。

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

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

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

QExcelファイルのプロパティの前回保存者名を変更する方法。

以前自分のパソコンで作成したExcelデータを会社のパソコン上で再加工しました。プロパティを開いて作成者の名前をチェックしてみると、作成者は私自身(beaurah)になってるのですが、その下の前回保存者の名前が全然違う人の名前(会社の人の名前)になって出てきます。このデータは100%私のオリジナルなので、その人はこのデータを全く触っていません。なので前回保存者にはなり得ません。(このパソコンはパスワード設定がしてあって、私以外の人は絶対立ち上げる事が出来ません。)にも拘わらずこの人の名前が前回保存者として出てくるのは何故なのでしょうか。因みに他に作成したデータや、ダウンロードしたエクセルデータを見てみましたが、やはり同じ人の名前が前回保存者の欄に出て来ました。前回保存者の名前を自分の名前に変更する事は出来ないのでしょうか。教えて下さい。宜しくお願い致します。

Aベストアンサー

>ワードの場合
「ツール」~「オプション」
「ユーザー情報」タブ
「名前」を変更すればいいと思います。

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

QExcel「ドキュメント検査機能では削除できない個人情報」メッセージ

お世話になります。
xlsmマクロ有効ファイルのシートを、xlsxファイルへコピーして、
xlsxファイルを保存しようとすると、
「ドキュメント検査機能では削除できない個人情報がドキュメントに含まれていること
がありますのでご注意下さい。(Ok/Cancel)」
のメッセージボックスが表示されます。

保存の都度、煩わしいので、このメッセージを表示しない方法を教えて下さい。

Aベストアンサー

こんにちは。

マクロ有効ファイル等は関係ありません。

ファイル-情報-共有準備
[問題のチェック]
[これらの情報をファイルに保存できるようにする]
この最後の下線が入った部分をクリツクして、表示を消します。

画像をみてください。

Q作成者・最終更新者の名前を修正するには

Office2010を使用しています。私ら(富士通ユーザー)が作成・最終更新を行うと必ず『FJ-USER』と表示されます。ほかにも富士通のPCを使う同僚らも同じく表示されるようで、誰が作成、最終更新を行ったのかわからない状態があります。ユーザの表示を変えるにはどうしたらよろしいでしょうか?

よろしくおねがいします

Aベストアンサー

>スタートボタンをクリックしてもファイル→オプション・・・というのになかなかたどり着けません…

スタートボタンは全く関係ありません。
Excelを開いて、左上のファイルボタンより以下の操作します。


ファイル→オプション→基本設定のタブで、ユーザー名を変更してOKしてみて下さい

QExcel2013 ドキュメント検査機能では削除できない個人情報がドキュメントに~

お世話になります。
VBAを記述したExcelファイルを閉じようとすると毎回
「ドキュメント検査機能では削除できない個人情報がドキュメントに含まれていることがありますのでご注意ください。」
と出ます。

毎回毎回は煩わしいので非表示の方法をネットで探し、
「ファイル」→「オプション」→「セキュリティセンター」→「セキュリティセンターの設定」→「プライバシーオプション」の「ファイルを保存するときにファイルのプロパティから個人情報を削除する」のチェックを外せば改善されるというのを見つけ早速試そうと思ったのですが、最初からチェックが入っていませんでした。

文字が薄くなっておりチェックを入れることも出来ません。直下の「ドキュメント検査」を試しに開いたところ、すべてのチェック欄にチェックが入っています。

どなたか解決策をご教示下さい。

Aベストアンサー

今回は、検査は最後の1回だけで良いと思うし、毎回保存するたびにメッセージが出たら、うっとうしく、メッセージの後は削除しているけれども、それでも取れないものがあると、以下のサポートでは言っているわけですよね。

「ブックを検査して非表示のデータと個人情報を削除する」
http://bit.ly/2bSeddg

の後の方の部分を読んでいただいていますか?

後、マクロはバイナリですから、何が入っているかとかは、一応、目視で確認するしかないだろうぐらいです。もう一つは、ActiveXコントロールの中に仕舞いこむことは可能ですが、意図的に情報をいれないと蓄えられないはずです。

それから、#1の赤で囲った所をクリックして消してしまえば、また、個人情報は蓄積されてくるだろうということです。

>他の項目と違った雰囲気の表記があるせいか、
>いまだにチェックすることができない状況です。

>*ドキュメントのプロパティ
>*作成者
>*ブックの絶対パス

>*ドキュメントのプロパティ
>*作成者
この2つは、分かりますでしょう?
Excelを一旦終えて、ファイル選択-右クリック-
プロパティ-詳細で様子をみることも可能です。

<添付画像>

>>*ブックの絶対パス
これに関しては、個々の数式が個人設定された部分にリンクされた場合に残ることはあるはずです。ユーザー定義関数や、個別のアドインのリンクなど。一旦、別な環境でリンクできない時に現れるのですが、絶対パス自体が、プライバシーにとって危険に晒すというのは、特殊な例でしょう。

http://so-zou.jp/software/tool/office/excel/security/personal-information/

さて、私は、これ以上は、どこまで話をしてよいのか分かりません。
もう、昨日から、のべ7~8時間ぐらい調べていますが、解決の目処は立っていません。内容としては、
「Microsoft Office のPersonal Data の完全な除去( Complete Removal of Personal Data for Microsoft Office)」

私は、PC歴が長いせいか、公安が、ネットで暗躍していた時期を覚えています。また、田中真紀子氏が、国会でエシュロン問題を取り上げた時に、周りが有耶無耶にしようとやっきになっていたのが印象深かったのです。

いくつかのMetadata Removal Tool というものも試してみましたが、目的が違うようです。いわゆる画像のEXIFなどを除去するためのものでした。『公的なものとして、Metadata-Extraction-Tool-master』があります。

ご質問者さんは、一般の方だとは思います。これは、PCやOffice 製品そのものよりも、それを気にする人たちには、反政府・反体制的な立場にある人たちの問題に繋がる人たちがいます。例えば、日本赤軍の国際指名手配の人物も、米国の傍聴システムにより、メールで足がついたと言われています。Microsoft 自身が個別でするはずもないことですし、彼らのうかつにこのような製品を使うはずもありませんが。

基本的には、厳密な内容に至っては、プライバシー保護機能は、100%を期待しないほうがよいということです。

今、Win10 ですと、直接、プロパティの中の個人情報を削除しようとすると、
「com surrogateによってファイルは開かれているため、操作を完了できません。」と、なってしまうわけです。どうやっても、99%までしか削除することは不可能です。これは、どうやら、Microsoft のWin10の問題(bug)だと解釈しました。

http://answers.microsoft.com/en-us/windows/forum/windows_10-files/the-action-cant-be-completed-because-the-file-is/b2dfcb2a-cc4e-40d9-bc46-b8df5e496781?page=2
(ここでは、OSを変える話まで出ています)

Jason.08 replied on December 11, 2015See post history
ここの解決策は完全ではありませんが、二度、削除のエラーを出させて、一つ目をタスクマネージャでCOM Sarrogate を解除するという方法です。

ただし、私は、貴重なExcelファイルを盗み出す輩には、その証拠になる印(token)を、Excelファイルに忍び込ませることは可能だと思います。公開するつもりもありませんが。

ご質問の要点からはずれているとは思っていますが、今のところ、個人情報削除に関しては、Microsoft 側は解決しているとは言えないということです。

プロパティの詳細を削除した状態(このPCという部分だけ、本来、PC名が入りますが、PCを変えれば事実上、そのPC名になります)

今回は、検査は最後の1回だけで良いと思うし、毎回保存するたびにメッセージが出たら、うっとうしく、メッセージの後は削除しているけれども、それでも取れないものがあると、以下のサポートでは言っているわけですよね。

「ブックを検査して非表示のデータと個人情報を削除する」
http://bit.ly/2bSeddg

の後の方の部分を読んでいただいていますか?

後、マクロはバイナリですから、何が入っているかとかは、一応、目視で確認するしかないだろうぐらいです。もう一つは、ActiveXコントロールの中に仕舞いこむ...続きを読む

QEXCELマクロで上書きメッセージ無しで保存する方法

EXCELマクロで上書きメッセージ無しで保存する方法をお願いします
ActiveWorkbook.SaveAs "C:\Documents andSettings\Nakatani\MyDocuments\Book1.xls"
の様にするとすでにファイルがある場合上書きメッセージが出ます
メッセージを出さずに上書きするプログラミングを教えて下さい
宜しくお願いします

Aベストアンサー

Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "C:\Documents andSettings\Nakatani\MyDocuments\Book1.xls"
Application.DisplayAlerts = True

QSub ***( ) と Private Sub ***( ) の違い

初歩的な質問で申し訳ありませんが・・・

自分でコードを書いていても、イベントが発生したりした時の処理で、コードのウィンドウで上のドロップダウンリストで選択できる時の処理などは自動的に[Private Sub Command1_Click( )]などと出てくるのでそのまま使っています。自分で別途プロシージャーを作成する時は[Sub ****( )]としています。
ですがその違いを理解しないまま、自分で作成する時は[Private Sub]ではなくて[Sub]を使っています。

Sub ***( ) と Private Sub ***( ) の違いは何なんでしょうか?
どなたか説明頂けませんか?
よろしくお願いします。

Aベストアンサー

「Sub」の部分にカーソルを置いて[F1]を押せばヘルプが起動します。
「指定項目」のところに「Public」と「Private」の説明がありますよ。
省略して「Sub hogehoge()」とした場合は「Public」とみなされます。

Publicは「すべてのモジュールから呼び出せるプロシージャ」ということになります。
Privateとすると「同じモジュールの中からしか呼び出せないプロシージャ」となります。

もしExcelをお持ちでしたらExcelのVBEで標準モジュールを追加し、「Sub Test1()」と「Private Sub Test2()」を作成してみてください。
そしてExcelの[ツール]-[マクロ]-[マクロ(Alt+F8)]でマクロ実行のダイアログを表示させてみるとわかります。
ここには実行できるプロシージャの一覧が表示されますが、Test1は表示されているけれどTest2は表示されません。
Test1はPublicで、Test2はPrivateだからです。

Qエクセル マクロ実行時エラー’1004’

For~Next構文内でシートコピーしていると途中で、
実行時エラー'1004’
WorksheetクラスのCopyメソッドが失敗しました。
が表示されることがあります。

該当のFor~Next文は10回以上実行されているので、コードの誤りではないと思うのですが、なぜ「Copyメソッドが失敗」するのかわかりません。
理由/対処方法がわかればありがたいと思い質問させていただきます。

**該当コード**
Sub 評価シート作成()
  Sheets(社員一覧).Select
  行 = 1
  Do
    ReDim Preserve 社員CD(行)
    ReDim Preserve 氏名(行)
    社員CD(行) = Cells(行 + 1, 1).Value
    氏名(行) = Cells(行 + 1, 2).Value
    行 = 行 + 1
  Loop Until Cells(行, 1) = ""
  人数 = 行 - 2
  For 回数 = 1 To 人数
    Sheets(評価シート).Select
    Sheets(評価シート).Copy after:=Sheets(評価シート)
    ActiveSheet.Name = 氏名(回数)
    Cells(4, 5) = 氏名(回数)
    Cells(4, 3) = 社員CD(回数)
  Next 回数
End Sub
*****************************
よろしくお願いします

For~Next構文内でシートコピーしていると途中で、
実行時エラー'1004’
WorksheetクラスのCopyメソッドが失敗しました。
が表示されることがあります。

該当のFor~Next文は10回以上実行されているので、コードの誤りではないと思うのですが、なぜ「Copyメソッドが失敗」するのかわかりません。
理由/対処方法がわかればありがたいと思い質問させていただきます。

**該当コード**
Sub 評価シート作成()
  Sheets(社員一覧).Select
  行 = 1
  Do
    ReDim Preserve 社員CD(行)
   ...続きを読む

Aベストアンサー

ひょっとしてこれに該当するのかな?

Excel でプログラムを使用してワークシートをコピーするとランタイム エラー 1004 が発生する
http://support.microsoft.com/kb/210684/ja

QVBA保存時の警告メッセージ

お世話になります。
Windows7、Excel2010で、Xlsmファイルを作りました。

ActiveXのToolBoxで、UserFormを作っている途中途中で保存しようとしたら、
次の警告メッセージOkCancelが表示されます。

「プライバシーに関する注意:
このドキュメントにはマクロ、ActiveXコントロール、XML拡張パックの情報、
またはWebコンポーネントが含まれています。
これらにはドキュメント検査機能で削除出来ない個人情報が
含まれる場合があります。」

今まで、VBA作成時には、このメッセージは表示された事はありませんでした。

これは、何のメッセージでしょうか?
害がなければ表示を止めたいのですが、表示しない方法を教えて下さい。

Aベストアンサー

Office ソリューションのエラーのトラブルシューティングに同様なトラブルの対処方法が記載されていましたのでご参考まで。
http://msdn.microsoft.com/ja-jp/library/h8c469ey.aspx


上記サイトの抜粋

既存のブックに基づいて Excel ブック プロジェクトを作成するときに発生するエラー

既存のブックに基づいて Excel ブック プロジェクトを作成する場合は、次のエラーが一緒に表示される可能性があります。
Excel から: "プライバシーに関する注意: このドキュメントには、マクロ、ActiveX コントロール、XML 拡張パックの情報、または Web コンポーネントが含まれています。 これらにはドキュメント検査機能で削除することができない個人情報が含まれる場合があります。"

Visual Studio から: "デザイナーが読み込みに失敗しました。"
これらのエラーは、ドキュメント検査機能を使用して削除した個人情報を含むブックに基づいてプロジェクトを作成しようとすると発生することがあります。 このエラーを回避するには、プロジェクトを作成する前に、次の手順を実行します。

Excel でブックを開きます。
Excel で、セキュリティ センターを開きます。
[プライバシー オプション] タブで、[ファイルを保存するときにファイルのプロパティから個人情報を削除する] チェック ボックスをオフにします。
ブックを保存して、Excel を閉じます。


セキュリテーセンターはエクセルのオプション→セキュリティーセンターの設定で表示させるようです。

Office ソリューションのエラーのトラブルシューティングに同様なトラブルの対処方法が記載されていましたのでご参考まで。
http://msdn.microsoft.com/ja-jp/library/h8c469ey.aspx


上記サイトの抜粋

既存のブックに基づいて Excel ブック プロジェクトを作成するときに発生するエラー

既存のブックに基づいて Excel ブック プロジェクトを作成する場合は、次のエラーが一緒に表示される可能性があります。
Excel から: "プライバシーに関する注意: このドキュメントには、マクロ、ActiveX コントロール、XML...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング