Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

WPS to DOC Batch bzw. VB Convert

Frage Entwicklung VB for Applications

Mitglied: fugu

fugu (Level 2) - Jetzt verbinden

24.02.2014, aktualisiert 15:07 Uhr, 2653 Aufrufe, 2 Kommentare

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
Mitglied: colinardo
LÖSUNG 24.02.2014, aktualisiert um 15:07 Uhr
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
01.
'Pfad zu den WPS Dokumenten 
02.
strPathWPS = "C:\wps" 
03.
'Pfad zu den DOCs 
04.
strPathDOC = "C:\doc" 
05.
'Logfile für eventuell auftretende Fehler 
06.
strPathLogfile = "c:\logfile.txt" 
07.
'Erweiterungen der Dateien die bearbeitet werden sollen 
08.
arrFileExtensions = Array("wps") 
09.
 
10.
Set fso = Wscript.CreateObject("Scripting.Filesystemobject") 
11.
Set objWord = WScript.CreateObject("Word.Application") 
12.
Set objShell = CreateObject("Wscript.Shell") 
13.
Dim intDocCount, intErrCount 
14.
'Applikation anzeigen und eventuelle Dialoge für Batchbetrieb unterdrücken 
15.
objWord.Visible = True 
16.
objWord.DisplayAlerts = 0 
17.
'Im Ordner Rekursiv alle Word-Dokumente verarbeiten 
18.
parseFolders fso.GetFolder(strPathWPS), True 
19.
'Das Anzeigen von Benachrichtigungen wieder aktivieren und Word schließen 
20.
objWord.DisplayAlerts = -1 
21.
objWord.Quit True 
22.
Set fso = Nothing 
23.
Set objWord = Nothing 
24.
If intErrCount = 0 Then 
25.
	MsgBox "Es wurden insgesamt " & intDocCount & " Dokumente verarbeitet.", vbInformation, "Verarbeitung abgeschlossen" 
26.
Else 
27.
	MsgBox "Es wurden insgesamt " & intDocCount & " Dokumente verarbeitet." & vbCrLf & "Davon ist bei " & intErrCount & " Dokumenten ein Fehler aufgetreten!", vbInformation, "Verarbeitung abgeschlossen" 
28.
	objShell.Run "Notepad.exe " & strPathLogfile 
29.
End If 
30.
 
31.
'Ende 
32.
 
33.
Function parseFolders(fldr, boolRecursion) 
34.
    For Each file In fldr.Files 
35.
    	For i = 0 To UBound(arrFileExtensions) 
36.
			If LCase(arrFileExtensions(i)) = LCase(fso.GetExtensionName(file.Path)) Then 
37.
				intDocCount = intDocCount + 1  
38.
	            'Fehlerbehandlung für den Fall das ein Fehler beim Öffnen eines Dokumentes auftritt 
39.
	            On Error Resume Next 
40.
	            Set objDoc = objWord.Documents.Open(file.Path) 
41.
	            If Err.Number <> 0 Then 
42.
	            	intErrCount = intErrCount + 1 
43.
	            	WriteLog "!!ERROR!! Fehler beim öffnen der Datei: -> '" & file.Path & "'" 
44.
	            Else 
45.
	            	objDoc.SaveAs strPathDOC & "\" & fso.GetBaseName(file.Name) & ".docx" ,16 
46.
	            	objDoc.Close True 
47.
	            	WriteLog "Dokument wurde konvertiert: ->'" & file.Path & "'" 
48.
	            End if 
49.
	            Exit For 
50.
	         End If 
51.
		Next 
52.
    Next 
53.
     
54.
    'Funktion wird rekursiv aufrufen wenn das durchsuchen aller Unterordner gewünscht ist 
55.
    If boolRecursion Then 
56.
		For Each subFolder in fldr.SubFolders 
57.
			parseFolders subFolder, True 
58.
		Next 
59.
	End If 
60.
End Function 
61.
 
62.
Function WriteLog(strText) 
63.
	Set objLog = fso.OpenTextFile(strPathLogfile,8,True) 
64.
	logline = Now & " - " & strText 
65.
	objLog.WriteLine(logline) 
66.
	objLog.Close 
67.
End Function
Grüße Uwe
Bitte warten ..
Mitglied: fugu
24.02.2014 um 15:08 Uhr
*niederknie* unglaublicher "Zweizeiler"

Vielen Dank!
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...