Vorlagen und Makros in LibreOffice Writer nutzen

Aus LinuxUser 05/2022

Vorlagen und Makros in LibreOffice Writer nutzen

© golubovy / 123RF.com

Briefautomat – die Theorie

Wiederkehrende Aufgaben wie das Verfassen von Briefen lassen sich einfach automatisieren. Die erforderliche Software samt Entwicklungsumgebung ist in Form der LibreOffice-Suite oft schon installiert.

Die plattformübergreifende verfügbare Bürosoftware LibreOffice [1] kann man kostenlos und ohne Lizenzgängeleien verwenden, der Quellcode liegt offen. Zudem steht das Programm in etlichen Sprachen zur Verfügung und es gibt eine große aktive Entwickler-Community, die seit 2011 regelmäßig Software-Updates mit Fehlerbehebungen und neuen Funktionen veröffentlicht.

Ein weiterer Vorteil des Pakets liegt in seiner Anpassungsfähigkeit. Dazu bietet LibreOffice (LO) mit Makros eine Funktionalität, die es erlaubt, die Software an die eigenen Bedürfnisse anzupassen. Um Makros in LibreOffice Writer nutzen zu können, müssen Sie lediglich die LibreOffice-Suite über die Paketverwaltung auf Ihrem System installieren. Danach erstellen Sie ein Dialogfenster und verknüpfen die Makros damit.

Features

Makros können den Text eines LO-Writer-Dokuments durchlaufen, durchsuchen, manipulieren sowie formatieren. Laut LibreOffice verfügen alle Dokumententypen über zwei Komponenten. Das sind zum einen die Daten – neuhochdeutsch Model genannt – und zum anderen der Controller, der festlegt, wie die Daten angezeigt werden. Der Controller eines Models kennt die Position des visuellen Text-Cursors sowie die aktuelle Seite und weiß, was gerade ausgewählt ist. Um nun ein geeignetes Makro zu schreiben, das ein Problem löst, sollten Sie sich zuerst fragen, ob sich das Problem mit Daten oder mit der Anzeige des Texts beschäftigt.

Abgesehen von simplem Text kann ein LO-Writer-Dokument Tabellen, Rahmen, Grafiken, Textfelder, Lesezeichen, Fußnoten, Endnoten, Textabschnitte, Indexeinträge, Objekte zur Formatierung sowie Nummerierungen enthalten. Diese Elemente lassen sich allesamt über Makros manipulieren. Möchten Sie tiefer in die Materie eintauchen, empfiehlt sich die Lektüre des kostenlosen Tutorials “Macros explained” von Andrew Pitonyak [2], das auf die LibreOffice-API eingeht und die zur Verfügung gestellten Methoden und Attribute erklärt (siehe Kasten “Schnittstelle”).

Schnittstelle

Bei der API von LibreOffice handelt es sich um eine Programmierschnittstelle, über die sich Aufgaben automatisieren lassen. Die Schnittstellen definieren in LibreOffice eine Reihe von Methoden. Objekte hingegen implementieren Schnittstellen, um auf die Methoden der jeweiligen Schnittstelle zugreifen zu können. Darüber hinaus gibt es einen Service, der ein Objekt definiert, indem er die Schnittstellen und Eigenschaften angibt, sowie weitere Services nennt, die er exportiert. Für ein LO-Writer-Dokument nennt der Dienst TextDocument Service alle verfügbaren Schnittstellen. Alle Models in LibreOffice unterliegen der Basisschnittstelle XModel (com.sun.star.frame.XModel[3]. Der dazugehörige Basis-Controller ist der sogenannte XController, zu finden unter com.sun.star.frame.XController [4].

Makroverwaltung

LibreOffice lädt Makros aus Dokumenten sowie aus gesonderten Bibliotheken. In der Praxis empfiehlt es sich, oft genutzte Makros in Bibliotheken zu organisieren, da in Dokumenten gesicherte Makros nur innerhalb des jeweiligen Dokuments zur Verfügung stehen. Das Büropaket verwaltet Makros hierarchisch. So umfasst ein Container keine oder mehrere Bibliotheken. Eine Library beziehungsweise Bibliothek beherbergt hingegen Module sowie Dialoge. Die Module wiederum bestehen aus Variablen, Funktionen sowie Subroutinen.

Ein Makro kann sich aus mehreren Subroutinen zusammensetzen, die auf Funktionen eines Moduls oder andere Bibliotheken zurückgreifen können. Bei Bedarf lässt sich die eigene Bibliothek sichern und auf einen anderen Rechner übertragen. Die voreingestellten LibreOffice-Pfade dazu finden Sie unter Extras | Optionen | LibreOffice | Pfade. Unter Linux befindet sich die eigene Bibliothek typischerweise im Home-Verzeichnis des Benutzers unter ~/.config/libreoffice/Version/user/basic/Bibliothek.

Vorlagen

Dokumentvorlagen erleichtern die Arbeit mit Makros, da Sie nicht alles per Code definieren müssen und das Erstellen einer Vorlage intuitiver von der Hand geht. Im Prinzip erstellen Sie eine Vorlage wie jedes andere LO-Writer-Dokument über Datei | Neu | Textdokument. Da der ganze Text vom Makro eingegeben wird, brauchen Sie in der Vorlage lediglich die Stile anzupassen beziehungsweise neue zu definieren.

Beispielsweise können Sie in der Vorlage eine andere Schriftart für die einzelnen Formate des Dokuments festlegen. Dazu klappen Sie mit [F11] die Formatvorlagen aus. Die Darstellungsweise der Stile stellen Sie auf Hierarchisch, damit die Abhängigkeiten der Stile sichtbar werden. Der oberste Stil nennt sich üblicherweise Standard und eignet sich auch für den Fließtext.

Die entsprechenden Einstellungen öffnen Sie mit einem Rechtsklick auf den Eintrag und Auswahl der Option Ändern aus dem Kontextmenü. Im Register Schrift stellen Sie dann die bevorzugte Schriftart für den Fließtext ein. An dieser Stelle sollten Sie zudem die Sprache kontrollieren und bei Bedarf auf Deutsch (Deutschland) umstellen. Die Spracheinstellungen regeln unter anderem die Ausgabe des Datums.

Bei vielen Dokumenten ist es nützlich, in der Kopf- und Fußzeile Informationen wie etwa die aktuelle Seitennummer und die Gesamtzahl an Seiten einzublenden. Die dafür nötigen Einstellungen treffen Sie unter Format | Seitenvorlage… | Fußzeile und Kopfzeile.

Haben Sie die Formatierung der Vorlage abgeschlossen, klicken Sie auf Datei | Speichern unter… und wählen als Dateiformat ODF Textdokument Dokumentvorlage (.ott) aus. Öffnen Sie nun einen Dateimanager und wählen dort die soeben erstellte Vorlage mit der Endung .ott mit einem Doppelklick aus, erstellt LibreOffice Writer auf Basis der Vorlage ein neues Dokument.

Eigene Bibliothek

Nach der Fertigstellung der Vorlage wechseln Sie zu Extras | Makros | Makros verwalten | Basic…. Nach einem Klick auf den Schalter Verwalten… öffnen Sie im nun erscheinenden BASIC-Makro-Organizer das Register Bibliotheken. Hier legen Sie eine neue Bibliothek an. Als Erstes geben Sie den Ort der Bibliothek an. Wählen Sie hier die Option Meine Makros und Dialoge aus, dann sichert LibreOffice die erzeugten Makros global, sodass sie in allen Dokumenten zur Verfügung stehen. Anschließend klicken Sie auf Neu und geben der Bibliothek einen Namen (Abbildung 1).

Abbildung 1: Die Makro-Programmiersprache Basic erlaubt das Anlegen eigener Bibliotheken.

Abbildung 1: Die Makro-Programmiersprache Basic erlaubt das Anlegen eigener Bibliotheken.

Auf dieselbe Weise erstellen Sie Module und Dialoge. Den Code selbst speichern Sie in einem Modul der eigenen Bibliothek ab. Das neue Modul erzeugen Sie ebenso im bereits erwähnten Basic-Makro-Organizer. Markieren Sie dazu die gewünschte Bibliothek und klicken Sie auf den Button Neu (Abbildung 2). Anschließend benötigen Sie in der Regel noch ein Dialogfenster, sodass Anwender jene Daten eingeben können, die sich von Dokument zu Dokument unterscheiden, wie etwa die Empfängeradresse eines Briefs.

Abbildung 2: Den Code Ihrer Basic-Makros speichern Sie in Modulen ab.

Abbildung 2: Den Code Ihrer Basic-Makros speichern Sie in Modulen ab.

Dazu wechseln Sie im Basic-Makro-Organizer ins Register Dialoge und wählen die von Ihnen angelegte Bibliothek aus. Durch einen Klick auf Neu vergeben Sie einen Namen für das Dialogfenster (Abbildung 3). Danach wagen Sie sich ans Eingemachte: Es gilt, das Dialogfenster zu erstellen sowie den dazugehörigen Code zu schreiben. Das erledigen Sie in der in LibreOffice integrierten Entwicklungsumgebung, die Sie über das Menü unter Extras | Makros | Makros bearbeiten… aufrufen.

Abbildung 3: <span class="ui-element">Dialog1</span> beherbergt das Dialogfenster, das sp&auml;ter noch erstellt wird.

Abbildung 3: Dialog1 beherbergt das Dialogfenster, das später noch erstellt wird.

Variablen

Variablen sind Container, die unter anderem zum Einsatz kommen, um konstante Werte zu speichern. Kennzeichnen Sie die Variable zusammen mit dem Schlüsselwort Private, beschränkt ihr Geltungsbereich sich auf das Modul (Listing 1, letzte Zeile). Definieren Sie die Variable zu Beginn des Moduls, sprich: außerhalb einer Funktion, dann ist sie global innerhalb des Moduls verfügbar.

Außerdem kennt die Makrosprache Basic Optionen (Listing 1, erste Zeile). Diese Optionen sollten ganz oben im Quelltext stehen, also noch vor allen Variablen und Funktionen. Anhand dieser Optionen erzwingt Basic die Deklaration von Variablen und bewahrt gleichzeitig die Kompatibilität zu Microsofts Visual Basic.

Listing 1

Definitionen

Option Explicit Option Compatible
[...]
Private sDear as String

Neben numerischen Werten wie etwa der Kreiszahl Pi lassen sich Textbausteine in Variablen ablegen. Textbausteine, die aus langen Sätzen bestehen, verteilen Sie am besten auf mehrere Zeilen. Dazu fügen Sie dem String am Ende jeder Zeile den Zusatz CHR(13) hinzu (Listing 2).

Listing 2

Textbausteine

s="Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy" _
& chr(13) & "eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed"_
& chr(13) & "diam voluptua. "

Fazit

Für das Erlernen der Makrosprache für LibreOffice Writer müssen Sie ein wenig Zeit investieren. Anschließend erstellen Sie dann aber schnell Dialogfenster samt alltagstauglichen Makros, die den Zeitaufwand für das Schreiben von Formbriefen erheblich verkürzen. Einziger Wermutstropfen: Die LibreOffice-Programmiersprache ist schlecht dokumentiert und die Fehlermeldungen lassen sich daher nicht leicht deuten. Speziell am Anfang werden Sie daher um das Experimentieren nicht herumkommen. (cla)

Die Autorin

Anzela Minosi bietet unter dem Pseudonym pczoneminosi auf Fiverr diverse Dienstleistungen rund um IT an. Einer ihrer Gigs widmet sich speziell der LibreOffice-Suite.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 05/2022 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben