Um Basic-Makros auszuführen brauchst Du keine Erweiterungen.
Ich habe mir vor längerer Zeit mal ein Makro geschrieben, mit dem ich
bequem verschiedene Versionen eines Dokuments speichern kann.
Bei mir habe ich dem Makro die Tastenkombination STRG + , zu gewiesen.
Damit wird mir die Datei in meinem Sicherungsordner gespeichert.
Damit dies funktioniert, muss der Dateiname einmalig ohne Extension im
Menü Datei\ Eigenschaften
Register: Beschreibung
Titel: Test
Bitte nicht Test.ods
Nach Ausführung des Makros setzt sich der neue Name der Backup-Datei wie folgt zusammen:
Dateiname = Suffix & Datum mit Zeit & Präfix & Extension
z.B.
Dateiname = Zyreon__2018-04-10_135046_Backup.ods
sSuffix = der Titel aus den Dokumenteigenschaften
Datum = _2018-04-10
Uhrzeit _135046 (13:50:46)
Präfix = _Backup
Extension = .ods
Die Extension wird mittels Makro vergeben, in dem geprüft wird,
welches Programm (Writer, Calc, oder ...) gerade aktiv ist.
Code: Alles auswählen
REM ***** BASIC *****
REM Habe folgenden Shortcut zum Ausführen des Makros zugewiesen --> STRG+,
Sub xBackup
Dim oDoc as Object
Dim xDoc as Variant
Dim sFName as String
Dim sSuffix as String
Dim dummy()
oDoc=ThisComponent
' Namen bzw. Suffix für den Dateinamen vergeben
' Es muss unter Menü Datei\Eigenschaften
' Register: Beschreibung
' der Dateiname (ohne Extension) im Feld Titel eingegeben werden.
sSuffix = oDoc.DocumentProperties.Title
'mri oDoc
' geöffneten Dokumententyp ermitteln und Dateiname zusammensetzen:
' Dateiname = Suffix & Datum mit Zeit & Präfix & Extension
' WRITER
If oDoc.SupportsService("com.sun.star.text.TextDocument") THEN
xDoc = array(sSuffix, format(now,"YYYY-MM-DD"), format(now, "hhmmss"), "Backup.odt")
' CALC
ElseIf oDoc.SupportsService("com.sun.star.sheet.SpreadsheetDocument") THEN
xDoc = array(sSuffix, format(now,"YYYY-MM-DD"), format(now, "hhmmss"), "Backup.ods")
' IMPRESS
ElseIf oDoc.SupportsService("com.sun.star.presentation.PresentationDocument") THEN
xDoc = array(sSuffix, format(now,"YYYY-MM-DD"), format(now, "hhmmss"), "Backup.odp")
' DRAW
ElseIf oDoc.SupportsService("com.sun.star.drawing.DrawingDocument") THEN
xDoc = array(sSuffix, format(now,"YYYY-MM-DD"), format(now, "hhmmss"), "Backup.odg")
' MATH
ElseIf oDoc.SupportsService("com.sun.star.formula.FormulaProperties") THEN
xDoc = array(sSuffix, format(now,"YYYY-MM-DD"), format(now, "hhmmss"), "Backup.odf")
Else
' Fehler abfangen, wenn kein passendes Programm geöffnet ist.
Msgbox "Es ist ein Fehler aufgetreten" & chr(10) & "Das Programm wird beendet",15
Exit Sub
END IF
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Dateiname (sFName) aus xDoc zusammensetzen.
' z.B.
' Zyreon__2018-04-10_135046_Backup.odt
'
' sSuffix = entspricht dem Titel aus den Dokumenteigenschaften
' Datum = _2018-04-10
' Uhrzeit _135046 (13:50:46)
' Präfix = _Backup
' Extension = .odt (Wird gemäß obige Abfrage [Dokumentyp] ermittelt.
sFName=join(xDoc, "_")
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Speicherung in hier angegebenen Pfad und mti Dateiname (sFName)
sFName ="c:\Sicherungskopien\" & sFName
datei=sFName
dateiurl=converttourl(datei)
odoc=thisComponent
' Speicherung
odoc.storeasurl(dateiurl,dummy())
End Sub
die Wahl welches Event (Ereignis) Du dem Makro zu weist. D.h. ausführen mittels Symbol,
über einen neuen Menüeintrag, Button, Tastenkombination oder ...
Es geht auch wenn Du das Dokument schließt oder öffnest, usw.
Lese auch die Kommentare im Code.
Noch Fragen?
Gruß
Faol