Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 2980 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 ..
Ähnliche Inhalte
VB for Applications
gelöst VB Skript für mehrere Batch Befehle (37)

Frage von freshman2017 zum Thema VB for Applications ...

Batch & Shell
gelöst Bat2exe converter funktioniert nicht (11)

Frage von tobias3355 zum Thema Batch & Shell ...

Microsoft Office
Excel 2010 Doc Properties ohne Makros (1)

Frage von arduino zum Thema Microsoft Office ...

Visual Studio
gelöst VB: Batchprogramm: Resultat zurückgeben an VB Form (Textfeld) (7)

Frage von PixL86 zum Thema Visual Studio ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Router & Routing
Allnet - VDSL2 Modem - SFP (mini-GBIC) (20)

Frage von Dobby zum Thema Router & Routing ...

Monitoring
Netzwerk-Monitoring Software (17)

Frage von Ghost108 zum Thema Monitoring ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (17)

Frage von liquidbase zum Thema Voice over IP ...

Windows 10
Windows 10 Ordnerfreigabe (15)

Frage von Xaero1982 zum Thema Windows 10 ...