WPS to DOC Batch bzw. VB Convert
Moin Com!
Ich habe mal wieder ein "Bastler-Problem" und hoffe, es gibt jemanden, der mit mit einem "Zweizeiler" viel Zeit ersparen kann
Wir haben ein altes Archiv von knapp 6000 Works-Dateien (.wps Works Version 4).
Bisher war das alles kein Problem - auf den alten Rechnern mit XP, installiertem Works 9 und Office 2007 ließen sich die Dateien problemlos öffnen. Auf den neuen PCs mit Win7x64 und Office 2013 gibt es allerdings Fehlermeldungen (Dateien wären zerstört und nicht konvertierbar).
Die üblichen Verdächtigen (Word 2003 Viewer, Microsoft Works Convertor Plugin) habe ich durch. Ich bekomme auf den neuen PCs die alten Dateien nicht mehr geöffnet.
Jetzt steht da noch ein alter PC in alter Konfiguration, der alle Dateien öffnen kann. Es gibt ein Batch-Plugin für Word ab 2010, welches WPS zu DOC konvertiert (http://www.gmayor.com/works_batch_converter.htm) Leider läuft das tatsächlich nicht unter Office 2007 und Office 2013 bekomme ich auf der alten XP-Dose nicht installiert.
So.
Was funktioniert ist:
Auf der alten XP-Dose die WPS-Datei öffnen und über den Speichern-Unter-Dialog die Konvertierung zu DOC manuell machen. Das ist aber bei der Datenmenge mehr als eine Sisyphusarbeit.
Gibt es evtl. über VB eine Möglichkeit das "Datei öffnen und Speichern unter" auf einen ganzen Ordner zu automatisieren?
Vielen Dank im voraus
Greetz, Fugu
Ich habe mal wieder ein "Bastler-Problem" und hoffe, es gibt jemanden, der mit mit einem "Zweizeiler" viel Zeit ersparen kann
Wir haben ein altes Archiv von knapp 6000 Works-Dateien (.wps Works Version 4).
Bisher war das alles kein Problem - auf den alten Rechnern mit XP, installiertem Works 9 und Office 2007 ließen sich die Dateien problemlos öffnen. Auf den neuen PCs mit Win7x64 und Office 2013 gibt es allerdings Fehlermeldungen (Dateien wären zerstört und nicht konvertierbar).
Die üblichen Verdächtigen (Word 2003 Viewer, Microsoft Works Convertor Plugin) habe ich durch. Ich bekomme auf den neuen PCs die alten Dateien nicht mehr geöffnet.
Jetzt steht da noch ein alter PC in alter Konfiguration, der alle Dateien öffnen kann. Es gibt ein Batch-Plugin für Word ab 2010, welches WPS zu DOC konvertiert (http://www.gmayor.com/works_batch_converter.htm) Leider läuft das tatsächlich nicht unter Office 2007 und Office 2013 bekomme ich auf der alten XP-Dose nicht installiert.
So.
Was funktioniert ist:
Auf der alten XP-Dose die WPS-Datei öffnen und über den Speichern-Unter-Dialog die Konvertierung zu DOC manuell machen. Das ist aber bei der Datenmenge mehr als eine Sisyphusarbeit.
Gibt es evtl. über VB eine Möglichkeit das "Datei öffnen und Speichern unter" auf einen ganzen Ordner zu automatisieren?
Vielen Dank im voraus
Greetz, Fugu
Please also mark the comments that contributed to the solution of the article
Content-ID: 230830
Url: https://administrator.de/contentid/230830
Printed on: December 13, 2024 at 03:12 o'clock
2 Comments
Latest comment
Hallo Fugu,
z.B. mit folgendem VBS-Script:
(Zeile 2 = Pfad zu den WPS-Dateien / Zeile 4 = Ordner in dem die DOC-Dateien landen / Zeile 6 = Pfad zu einer LOG-Datei)
Sollen die Word-Fenster während des Vorgangs nicht immer aufpoppen und das ganze "Silent" ablaufen, kann dies in Zeile 15 mit Änderung auf False festgelegt werden.
Code in einer Textdatei mit der Endung *.vbs speichern, ausführen... freuen
Grüße Uwe
z.B. mit folgendem VBS-Script:
(Zeile 2 = Pfad zu den WPS-Dateien / Zeile 4 = Ordner in dem die DOC-Dateien landen / Zeile 6 = Pfad zu einer LOG-Datei)
Sollen die Word-Fenster während des Vorgangs nicht immer aufpoppen und das ganze "Silent" ablaufen, kann dies in Zeile 15 mit Änderung auf False festgelegt werden.
Code in einer Textdatei mit der Endung *.vbs speichern, ausführen... freuen
'Pfad zu den WPS Dokumenten
strPathWPS = "C:\wps"
'Pfad zu den DOCs
strPathDOC = "C:\doc"
'Logfile für eventuell auftretende Fehler
strPathLogfile = "c:\logfile.txt"
'Erweiterungen der Dateien die bearbeitet werden sollen
arrFileExtensions = Array("wps")
Set fso = Wscript.CreateObject("Scripting.Filesystemobject")
Set objWord = WScript.CreateObject("Word.Application")
Set objShell = CreateObject("Wscript.Shell")
Dim intDocCount, intErrCount
'Applikation anzeigen und eventuelle Dialoge für Batchbetrieb unterdrücken
objWord.Visible = True
objWord.DisplayAlerts = 0
'Im Ordner Rekursiv alle Word-Dokumente verarbeiten
parseFolders fso.GetFolder(strPathWPS), True
'Das Anzeigen von Benachrichtigungen wieder aktivieren und Word schließen
objWord.DisplayAlerts = -1
objWord.Quit True
Set fso = Nothing
Set objWord = Nothing
If intErrCount = 0 Then
MsgBox "Es wurden insgesamt " & intDocCount & " Dokumente verarbeitet.", vbInformation, "Verarbeitung abgeschlossen"
Else
MsgBox "Es wurden insgesamt " & intDocCount & " Dokumente verarbeitet." & vbCrLf & "Davon ist bei " & intErrCount & " Dokumenten ein Fehler aufgetreten!", vbInformation, "Verarbeitung abgeschlossen"
objShell.Run "Notepad.exe " & strPathLogfile
End If
'Ende
Function parseFolders(fldr, boolRecursion)
For Each file In fldr.Files
For i = 0 To UBound(arrFileExtensions)
If LCase(arrFileExtensions(i)) = LCase(fso.GetExtensionName(file.Path)) Then
intDocCount = intDocCount + 1
'Fehlerbehandlung für den Fall das ein Fehler beim Öffnen eines Dokumentes auftritt
On Error Resume Next
Set objDoc = objWord.Documents.Open(file.Path)
If Err.Number <> 0 Then
intErrCount = intErrCount + 1
WriteLog "!!ERROR!! Fehler beim öffnen der Datei: -> '" & file.Path & "'"
Else
objDoc.SaveAs strPathDOC & "\" & fso.GetBaseName(file.Name) & ".docx" ,16
objDoc.Close True
WriteLog "Dokument wurde konvertiert: ->'" & file.Path & "'"
End if
Exit For
End If
Next
Next
'Funktion wird rekursiv aufrufen wenn das durchsuchen aller Unterordner gewünscht ist
If boolRecursion Then
For Each subFolder in fldr.SubFolders
parseFolders subFolder, True
Next
End If
End Function
Function WriteLog(strText)
Set objLog = fso.OpenTextFile(strPathLogfile,8,True)
logline = Now & " - " & strText
objLog.WriteLine(logline)
objLog.Close
End Function