warum kann man nicht in einer mit "set document" geöffneten Datei die BuiltInDocumentProperties "Autor", "Last author" und "Title" beliebig ändern.
In der Datei, in der der Makro läuft, ist das möglich.
Code:
Sub T_1() Dim Doc As Document
file = "c:\users\VStudio\desktop\neu.docx" Set Doc = Documents.Open(file) Doc.BuiltInDocumentProperties("Author") = "Autor" Doc.BuiltInDocumentProperties("Last author") = "neuer Autor" Doc.BuiltInDocumentProperties("Title") = "neuer Titel" Doc.Close True End Sub
Der Test war zwar mit Word, es sollte aber keinen Unterschied zu Excel geben.
Hintergrund:
Einige MS-Office-malware setzt diese Properties, die Namen vermutlich aus dem Python-Projekt "Names" (https://pypi.org/project/names/). Eine Antwort würde helfen das Vorgehen der crooks besser zu verstehen.
24.10.2020, 15:54 (Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2020, 15:54 von snb.)
Ich kann in diesem Workbook ändern:
Code:
Sub M_snb() With ThisWorkbook .BuiltinDocumentProperties("author") = "snb" .BuiltinDocumentProperties("title") = "snb_000" .BuiltinDocumentProperties("last author") = "snb_001" End With
With GetObject("G:\OF\adressen.xlsx") .BuiltinDocumentProperties("author") = "snb_009" .BuiltinDocumentProperties("title") = "snb_000" .BuiltinDocumentProperties("last author") = "snb_001" 'ohne Erfolg .Save End With
24.10.2020, 16:05 (Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2020, 16:07 von Fennek.)
Hallo snb,
da ich diese Dateien nicht auf meinen PC lade, hier wie es unter Linux mit dem Befehl "file" aussieht:
Code:
Composite Document File V2 Document, Little Endian, Os: Windows, Version 6.2, Code page: 1252, Title: Animi., Author: Zoe Schneider, Template: Normal.dotm, Revision Number: 1, Name of Creating Application: Microsoft Office Word, Create Time/Date: Fri Oct 16 14:32:00 2020, Last Saved Time/Date: Fri Oct 16 14:32:00 2020, Number of Pages: 1, Number of Words: 2755, Number of Characters: 15704, Security: 8
Der Name des Autors "Zoe Schneider" stammt vermutlich aus der Python library "Names". Beim Speichern wurde nicht der Name des Nutzers (Environ("User")) eingefügt. Die Zeitstempel sind regelmäßig einige Stunden bevor die Datei in der Datenbank hochgeladen wird, also vermutlich unverändert. Zeitpunkt des Erstellens und letzte Speicherung sind (fast) immer identisch.
In einigen Fällen wird auch ein ebenfalls gespoofter "Last user" angegeben.
Einige Modifikation des Templates müssen per VBA vorgenommen worden sein. Die Frage wäre, ob die crooks zusätzlich Manipuationen im Zip-file vornehmen (ohne den Zeitspempel 1.1.1989 zu ändern).
ich bin jetzt nicht sicher, ob ich richtig verstanden habe, was Du genau möchtest, aber mit VBA kommst Du nicht an alle Properties einer Datei dran, wie z.B. Custom Document Properties. Ich hatte früher dazu eine DLL = DSOFile.dll genutzt; googlen nach Custom Document Properties+DSO+DLL. Die DLL ist nur in 32 Bit verfügbar, wird auch nicht mehr von MS supported und ist als unsicher markiert, wenn ich jetzt richtig informiert bin.
Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards https://de.excel-translator.de/translator:: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Set objSummaryProperties = objOleDocumentProperties.SummaryProperties
With objSummaryProperties .Title = "Mein Titel" .Company = "Meine Firma" .Author = "Lisa Fitz" .LastSavedBy = "Nobody" '.ApplicationName = "Rumpelstilz" '.DateCreated = "2.1.1912" End With
With objOleDocumentProperties Call .Save Call .Close End With
Set objSummaryProperties = Nothing Set objOleDocumentProperties = Nothing End Sub
Damit ist es möglich vergleichsweise einfach für jede Datei einen anderen file-hash zu erzeugen. Der Inhalt wird dann nur in jeder x-ten Datei geändert.