次の方法で共有

プロパティの情報を削除したのにbuiltindocumentpropertiesで情報が取得される

Anonymous
2022-03-29T09:22:46+00:00

お世話になっております。

excel、word、pptで作成したファイルのプロパティの見え方について質問です。

excel、word、pptファイルをエクスプローラーから確認し、

「プロパティ」の「詳細」から見られる、

「タイトル」「作成者」「前回保存者」等の情報がブランクである状態にする・それを確認することが最終的な目的です。

対象のファイルが大量にあるため、「builtindocumentproperties」を利用し、

各ファイルの「タイトル」「作成者」「前回保存者」等の情報をexcelに一覧として転記できるVBAマクロを作成しました。

まず、マクロを作成・実行した後、目視で各ファイルのプロパティと比較し、マクロが正しく動いていることを確認しました。

(各ファイルの「タイトル」「作成者」「前回保存者」が、プロパティから見た通り転記されている。)

その後、各ファイルのプロパティ情報を手動で削除し、「タイトル」「作成者」「前回保存者」等の情報をブランクにしました。

(プロパティの「プロパティや個人情報を削除」を実行し、「タイトル」「作成者」「前回保存者」等の情報がブランクになったことを確認。)

その後で再度、マクロを実行したところ、

一部のファイルについて、

「タイトル」「作成者」「前回保存者」がブランクにならず、 削除する前の情報が転記されました。

(想定通り、ブランクとして転記されたものもありました。)

何か原因と考えられることがあれば、ご教示頂けませんでしょうか?

情報がどこかに残っているか、VBAマクロがおかしいと見ていますが、

なぜかうまくいくファイルとうまくいかないファイルがあり、規則性も見えないため、困っています。

また、VBAマクロのソースやファイルのプロパティのスクリーンショットは添付できません。

---追記‐‐‐

挙動がおかしいファイルを一つピックアップし、もう少し調べてみました。

docファイルでプロパティで見ると情報がブランクなのに、マクロで確認すると情報が転記されるものについて、

wordで開き、「ファイル」から「ドキュメント検査」をかけたところ、

「ドキュメントのプロパティと個人情報」で引っ掛かりました。

ここで情報を削除し、マクロを回し直したところ、想定通り、プロパティの情報がブランクで転記されました。

そのため、「情報がどこかに残っている」という可能性が高いと考えています。


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

Microsoft 365 と Office | Excel | その他 | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

6 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2022-04-01T05:54:00+00:00

    > excel、word、pptファイルをエクスプローラーから確認> 各ファイルのプロパティ情報を手動で削除> プロパティの「プロパティや個人情報を削除」を実行

    エクスプローラーから doc ファイルのプロパティを削除するのではなく、
    Word で doc ファイルを開いて[ファイル]->[情報]タブから
    各プロパティの編集を行なうようにして下さい。

    > docファイルでプロパティで見ると情報がブランクなのに、> マクロで確認すると情報が転記されるもの

    Microsoft サポート: Word 2003 でメタデータを最小限に抑える方法

    @IT: Office文書ファイルに含まれているプライバシー情報を削除する

    恐らくエクスプローラーを介して削除できるのはあくまでシェル項目に
    属するメタデータであり、doc ファイルに関してはシェル項目とは別に
    バイナリデータとして記録されている固有の隠しデータが
    内部に埋め込まれていて、むしろそちらがオリジナルであると思われます。
    (エクスプローラーから削除しても、Word で開いて上書き保存すれば
    またシェル項目のプロパティが復元される)

    なお、docx ファイルの場合は Open XML フォーマットによって
    標準化されているためか、エクスプローラーによって削除された
    文書プロパティは XML 上からも削除されます。

    但し、パスワードがかけられている docx ファイルの場合、
    エクスプローラーではプロパティの削除も表示も出来ません。
    ([タイトル]も[作成者]も空欄で表示される)

    つまり、doc ファイルでも docx ファイルでも
    「エクスプローラーから確実に削除できるとは限らない」
    ということです。
    普通に Word の機能やマクロを使用されることをお奨めします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2022-03-30T07:39:13+00:00

    ご返信ありがとうございます。

    全く違う訳ではないのですが、求めていた回答ではないです。

    今は、やりたいこと‪(プロパティの情報の確認と削除)‬ができるマクロを作るのではなく、

    作ったマクロが想定通りに使えていない原因を知りたいのです。

    > プロパティの「プロパティや個人情報を削除」を実行し、「タイトル」「作成者」「前回保存者」等の情報がブランクになったことを確認

    したのに、

    「builtindocumentproperties」を利用したマクロでプロパティの情報を引き抜くと、

    削除したはずの情報が入っている原因が知りたいです。

    プロパティでGUI的に見ている情報と、「builtindocumentproperties」を利用してCUI的に見ている情報は、別なのでしょうか?

    プロパティの「プロパティや個人情報を削除」では、情報がどこかに残っているのでしょうか?

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2022-03-30T06:12:41+00:00

    > 「タイトル」「作成者」「前回保存者」等の情報がブランクである状態にする> 一部のファイルについて、> 「タイトル」「作成者」「前回保存者」がブランクにならず、> 削除する前の情報が転記されました。 > (想定通り、ブランクとして転記されたものもありました。)

    (標準モジュール)

    Option Explicit
    
    Private Sub Test()
        
        Dim wbk As Excel.Workbook
        
        Set wbk = ActiveWorkbook
        
        Debug.Print "'" & wbk.FullName & "' は個人情報の削除が" & _
                    IIf(wbk.RemovePersonalInformation, "有効", "無効") & _
                    "なブックです。"
        
        Debug.Print "組み込み文書プロパティの現在の値を列挙します。"
        Call PrintBuiltinDocumentProperties(wbk)
        
        Call RemoveDocumentPropertiesInWorkbook(wbk)
        Debug.Print "個人情報の削除を有効にし、文書プロパティを削除しました。"
        
        Debug.Print "組み込み文書プロパティの現在の値を列挙します。"
        Call PrintBuiltinDocumentProperties(wbk)
    
        Set wbk = Nothing
    
    End Sub
    
    Sub RemoveDocumentPropertiesInWorkbook(Workbook As Excel.Workbook)
        
        With Workbook
            .RemovePersonalInformation = True
            .RemoveDocumentInformation xlRDIDocumentProperties
            If .Path <> "" Then
                .Application.DisplayAlerts = False
                .Save
                .Application.DisplayAlerts = True
            End If
        End With
    
    End Sub
    
    Sub PrintBuiltinDocumentProperties(Workbook As Excel.Workbook)
    
        Dim dp As Office.DocumentProperty
    
        On Error Resume Next
        For Each dp In Workbook.BuiltinDocumentProperties
            Debug.Print dp.Name & ": " & dp.Value
        Next
    
    End Sub
    

    上記のマクロのようなことが出来ればよい、ということでしょうか。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2022-03-29T10:12:31+00:00

    追記しましたが、VBAよりプロパティの挙動に関する質問となるように考えています。

    追記をご確認の上、改めてご回答を頂けますでしょうか?

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  5. Anonymous
    2022-03-29T09:55:30+00:00

    VBA専用のフォーラムがございますため、下記へご投稿してみてください。

    https://social.msdn.microsoft.com/Forums/ja-JP/...

    どうぞ宜しくお願い致します。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません