Folgendes Makro funktioniert bei alten Worddokumenten. Ich würde es nun gerne so aktualisieren, dass es für alle Worddateien geht.
Wenn ich beim Quellverzeichnis *.doc* schreibe, damit er auch docx dateien benutzt kommt es jedoch bei der ersten docx datei zu einem Fehler.
Auch ein ActiveDocument.SaveAs2 ändert hier nichts.
Was auffällig ist, dass Makro öffnet die Datei und entfernt auch den Schreibschutz. Nur das Speichern funktioniert wohl nicht... Vll hat er hier ein Problem mit dem Dateiformat?
Sub WordDateienEntsperren()
' Entfernt das Passwort von allen Word-Dateien aus Quelle und
' schreibt die Worddateien ohne Passwort nach Ziel
Const Quellverzeichnis = "C:\Users\sbutz\Desktop\Test1"
Const Zielverzeichnis = "C:\Users\sbutz\Desktop\Test1 neu"
Const MyPasswort = "qs"
Dim DatNam As String
DatNam = Dir(Quellverzeichnis & "\*.doc") '1. Dateinamen holen
Do Until DatNam = "" 'Alle Files im VZ abklappern
' Worddatei mit Passwort öffnen
Documents.Open FileName:=Quellverzeichnis & "\" & DatNam, ConfirmConversions:=False, ReadOnly:= _
False, AddToRecentFiles:=False, PasswordDocument:=MyPasswort, PasswordTemplate:= _
"", Revert:=False, WritePasswordDocument:=MyPasswort, WritePasswordTemplate:= _
"", Format:=wdOpenFormatAuto
' Worddatei ohne Passwort schreiben
ActiveDocument.SaveAs FileName:=Zielverzeichnis & "\" & DatNam, FileFormat:=wdFormatDocument, _
LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
False
' Dokument schließen
ActiveDocument.Close
' nächste Datei holen
DatNam = Dir
Loop
End Sub