Thema Datum  Von Nutzer Rating
Antwort
Rot OOo/LOo Macro Unterordner durchsuchen
01.04.2020 20:14:53 Michel
NotSolved
01.04.2020 20:17:33 Michel
NotSolved
02.04.2020 00:41:02 Gast34112
NotSolved
02.04.2020 08:10:59 RPP63
NotSolved

Ansicht des Beitrags:
Von:
Michel
Datum:
01.04.2020 20:14:53
Views:
819
Rating: Antwort:
  Ja
Thema:
OOo/LOo Macro Unterordner durchsuchen

Hallo zusammen,

ich habe sehr viele Dateien im Format .sxw die ich zu PDF umwandeln muss. Ich habe für StarOffice das Makro von Danny Brewer gefunden was zu 99% das tut, was ich brauche (link zu sourceforge).

Leider durchsucht das Makro nur einen Ordner und keine Unterordner. Das Makro soll jedoch in die einzelnen Unterordner gehen und jede .sxw Datei umwandeln und im gleichen Ordnerpfad die .pdf Datei ablegen.

Ich habe nur sehr geringe Kenntnisse im VBA-Programmieren. Nach langer Recherche habe ich herausgefunden, dass es mit der Funktion DIR nicht ohne Weiteres möglich ist die Unterordner zu durchsuchen.

Ich habe versucht aus dem Code von Danny Brewer die Stücke rauszusuchen, die ich ändern muss. Folgende zwei müssten es sein:

 

Hier zählt er die Anzahl an Dateien die umgewandelt werden sollen (CSourceFolder ist der Ordner und LCase(cSourceType) ist das Dateiformat nach dem er suchen soll)

Function CountSourceFiles()
	nNumFiles = 0
	
	cFile = Dir$( cSourceFolder + "/*." + LCase(cSourceType) )
	Do While cFile <> ""
		nNumFiles = nNumFiles + 1
		cFile = Dir$
	Loop
	
	CountSourceFiles() = nNumFiles
End Function

Hier findet die eigentliche Konvertierung statt:

	' This is the actual conversion loop.
	nFileNum = 0
	cFile = Dir$( cSourceFolder + "/*." + LCase(cSourceType) )
	Do While cFile <> ""  And  (Not bInterrupted)

		' Build the complete pathname to the source document.
		cSourceName = cSourceFolder + "/" + cFile
		' Open the source document.
		oDoc = StarDesktop.loadComponentFromURL( ConvertToUrl( cSourceName ), "_blank", 0,_
						oImportOptions )

		' Build the name of the new document -- with new suffix.	
		cDestName = Left( cFile, Len( cFile ) - 4 )
		cDestName = cDestName + "." + LCase(cDestType)
		' Build the URL of the new document.
		cDestURL = ConvertToUrl( cDestFolder + "/" + cDestName )

		' Save the document in the new destination format.
		oDoc.storeToURL( cDestURL, oExportOptions ) 

		' Update some stuff on the screen to keep the user entertained.
		oFld3.setText( "Closing..." )
		
		' Close the document.
		oDoc.dispose()
		
		' Get name of next file to convert.
		cFile = Dir$
	Loop
	

Hat jemand eine Idee wie ich den Code umschreiben müsste um die Unterordner zu durchsuchen? Folgenden Ansatz hatte ich aber der klappte nicht:

Vielen Dank schon im Vorraus

Michel


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot OOo/LOo Macro Unterordner durchsuchen
01.04.2020 20:14:53 Michel
NotSolved
01.04.2020 20:17:33 Michel
NotSolved
02.04.2020 00:41:02 Gast34112
NotSolved
02.04.2020 08:10:59 RPP63
NotSolved