Vorweg, es geht mir nicht darum den Schreibschutz zu umgehen, die Passwöter der Dokumente weiß ich.
Beim öffnen des Dokuments wird man gebeten, "Kennwort für Schreibzugriff eingeben oder mit Schreibschutz öffnen".
Nun habe ich das Problem, dass ich die Dokumente ins Programm CAQ übertragen möchte. Das klappt soweit auch, allerdings muss ich jedesmal zweimal das Passwort eingeben, einmal bei der Dokumentüberprüfung und bei der Übertragung nochmal(ist leider vom Programm so festgelegt)
Da ich mehr als 200.000 Dokumente übertragen muss, ist es viel zu aufwendig mehr als 400.000mal das Passwort einzugeben.
Nun bin ich auf der Suche wie ich durch z.B. ein VBA Modul automatisch von allen Dokumenten den Schreibschutz entfernen kann.
Erste Idee war so, allerdings passiert hier nichts, außer das mit die MsgBox angezeigt wird.
Kann mir jemand helfen, wo liegt der Fehler?
Idee des Maktros ist einfach, dass es die Schritte automatisch ausführt, die ich auch machen müsste. Also:
Datei öffnen, Passwot eingeben und bestätigen, Schreibschutz vom Dokument entfernen, speichern und schließen, dann automatisch nächstes Dokument im Ordner nehmen.
Habt ihr eine Idee wo der Fehler liegen könnte? Habt ihr vll noch eine efficientere Lösung? Es handelt sich um viele Ordner, die dann auch wieder unterordner haben und so weiter. Außerdem hab ich das gleiche Problem dann bei Exceldokumenten auch noch, gibt es vll eine Möglichkeit alles in einem Abwasch zu machen?
Sub RemoveWriteProtection()
Dim strFolder As String
Dim strPassword As String
Dim strFile As String
Dim doc As Document
' Ordnerpfad angeben, in dem sich die Dokumente befinden
strFolder = "C:\Pfad\zu\den\Dokumenten\"
' Passwort für die Dokumente angeben
strPassword = "DeinPasswort"
' Alle Word-Dokumente im angegebenen Ordner durchlaufen
strFile = Dir(strFolder & "*.docx")
Do While strFile <> ""
' Dokument öffnen
Set doc = Documents.Open(FileName:=strFolder & strFile, PasswordDocument:=strPassword)
' Schreibschutz entfernen
doc.Unprotect Password:=strPassword
' Dokument speichern und schließen
doc.Save
doc.Close
' Nächstes Dokument in Ordner durchlaufen
strFile = Dir
Loop
MsgBox "Schreibschutz wurde entfernt."
End Sub
|