ich bin gerade dabei mir mein erstes Makro zu basteln. Und zwar brauch ich eins welches mir alle Tabellen des aktuellen Dokuments als CSV speichert mit folgenden Optionen:
1. die Dateien sollen nach folgenden Schema benannt werden: "DateinameTabellenname.prn" (Dateiname ohne Endung)
2. die Dateien sollen im selben Ordner wie die Ursprungsdatei gespeichert werden
3. die Dateien sollen als Text (CSV) mit fester Spaltenbreite gespeichert werden
4. In der CSV Datei müssen die Kommas durch Punkte ersetzt sein.
5. und es wär schön schön, wenn nach ausführen des Skripts, wieder die Ursprungsdatei in OO offen wäre.
Soweit bin ich bisher gekommen:
Code: Alles auswählen
REM ***** BASIC *****
Sub Main
End Sub
sub export
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(3) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///F:/richard/Eigene%20Dateien/test/Datsheet1.prn"
args1(1).Name = "FilterName"
args1(1).Value = "Text - txt - csv (StarCalc)"
args1(2).Name = "FilterOptions"
args1(2).Value = "FIX,34,ANSI,1"
args1(3).Name = "SelectionOnly"
args1(3).Value = true
dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())
end sub
Code: Alles auswählen
dim docname as string
dim sheetname as string
docname = ThisComponent.CurrentController.Frame
sheetname = Document.CurrentController.Activesheet.Name
Zu 2. so ähnlich:
Code: Alles auswählen
dim directory as string
dirname = CurDir
Code: Alles auswählen
args1(0).Value = "dirname/docnamesheetname.prn"
Zu. 4. Muss ich dafür einen zusätzlichen Befehl schreiben oder gibt es da eine andere Lösung?
Danke für alle Antworten,
Richard