LibreOffice + Basic

LibreOffice-Basic

Zielgruppe sind StudentInnen und ambitionierte Informatik-Amateure

Grundkenntnisse der Tabellen-Kalkulation werden vorausgesetzt.



Tabellen-Kalkulation & Basic

Basic wird vorwiegend für 2 Aufgaben eingesetzt:
Zusätzliche Funktionen für Kalkulations-Programme. Sauber programmierte Funktionen sind portabel. Man kann sie mit allen gängigen Kalkulations-Programmen verwenden.
Automation und → Animation. Diese Basic-Programme sind normalerweise nicht portabel, weil sie auf Objekte zugreifen, die in den einzelnen Kalkulations-Programmen unterschiedlich organisiert sind.


MS-VBA (Visual Basic for Applications) ist eine Variante der Programmiersprache, die in Büro-Programm-Pakete (MS-Office) intergriert ist. Damit kann man u.a. 'BenutzerInnen-definierte' Funktionen programmieren und in MS-Excel genauso wie die Standard-Funktionen verwenden.
VBA-Funktionen und Programme werden in Menüs und in der Hilfe oft mit dem Namen Makro bezeichnet. Dieser Name wird hier nicht verwendet, weil er in der IT-Entwicklung normalerweise eine  andere Bedeutung hat.

Auch in den freien Büro-Programm-Paketen LibreOffice und OpenOffice ist eine Basic-Variante als LibreOffice-Basic bzw. OpenOffice-Basic enthalten.

In diesem Web werden vorzugsweise solche Beispiele vorgestellt, die zwischen MS-Excel, LibreOffice-Calc und OpenOffice-Calc ohne Änderung portabel sind.
Details zur Verwendung von → Basic mit MS-Excel



Wenn man Basic-Funktionen und Hilfs-Programme in der Tabellen-Kalkulation verwenden will, dann muss man das in der Konfiguration ausdrücklich erlauben.

Darüber hinaus muss man der Verwendung von Basic-Funktionen bei jeder einzelnen Anwendung ausdrücklich zustimmen.

Alle in diesem Web vorgestellten Basic-Programme sind ungeschützt. Man kann den Quelltext daher ansehen und kontrollieren - und zwar auch dann (gefahrlos), wenn die Ausführung nicht erlaubt wurde.

Konfiguration von LibreOffice oder OpenOffice


Wenn man ein Kalkulations-Dokument oft verwendet, dann ist es lästig, jedesmal die Zustimmung zu erteilen.

In diesen Fällen ist es bequemer, ein eigenes Verzeichnis (Ordner) für als sicher bekannte Dateien zu erstellen und dieses bei LibreOffice (OpenOffice) anzugeben:
Menü   Extras / Optionen / LibreOffice / Sicherheit / Makrosicherheit / Vertrauenswürdige Quellen

Im konfigurierten 'Sicheren Verzeichnis' sollte man nur solche Dateien organisieren, die wirklich sicher sind - z.B. mit selbst erstellten Basic-Funktionen.

Basic-Organisation in LibreOffice und OpenOffice


Mit Klick auf den Button Bearbeiten wird das Basic Quelltext Fenster geöffnet. Im Fenster befindet sich links oben eine Auswahl-Liste, mit der es sich auch nach dem Öffnen auf andere Kategorien umschalten lässt.

Das Basic Quelltext Fenster lässt sich wie das Fenster eines Text-Editors verwenden. Sie können den Text kopieren, einsetzen, editieren, ...



Man kann sie studieren, sollte den Text jedoch keinesfalls verändern.



Die Funktionen werden jedoch nicht in den einzelnen Kalkulations-Dateien gespeichert: Wenn man Dateien weitergibt, dann muss man entweder die verwendeten Basic-Funktionen zusätzlich in jeder betroffenen Kalkulations-Datei installieren oder den Basic-Quelltext getrennt als Text-Datei transportieren.



Legen sie mit Taste  Neu  ein neues Modul an oder verwenden sie ein vorhandenes Sub-Objekt wie z.B.   Standard / Module1

Je nach Version kann es notwendig sein, das Dokument im Format *.ods zu speichern und erneut zu öffnen.



Tipp: Kopieren sie den Basic-Quelltext aus einem durch Import erhaltenen Modul ...VBAProject / Module / *   in ein anderes Modul   ...Standard / Module / *, um die Basic-Funktionen dauerhaft in LibreOffice (OpenOffice) zu verwenden.
Speichern sie das Dokument danach im Datei-Format *.ods


Wechseln sie mit Alt-F11 wieder zum Kalkulations-Blatt und probieren sie die Basic-Funktion aus:
Tragen sie in eine Zelle (z.B. in A1) diese Formel ein:
=Hallo()
Die Funktion zeigt den programmierten Text an.
LibreOffice und OpenOffice wandeln Formel-Text immer in Großbuchstaben um: Das irritiert, spielt jedoch keine Rolle, weil alle Kalkulations-Programme im Formel-Text große und kleine Buchstaben gleich behandeln.

Mögliche Fehler:
In der ↑ LibreOffice-Konfiguration ist die Ausführung von Basic-(Makro)-Funktionen nicht erlaubt.
Kleine Tippfehler ???


Anwendung in LibreOffice-Calc:
Schreiben sie einen Zahlenwert in eine Zelle, z.B. in A2 die Zahl 123
Tragen sie die Funktion in eine andere Zelle (z.B. in B2) ein:
=Inc(A2)
Die Funktion berechnet die gewünschte Addition.
Bei jeder Änderung des Werts von A2 wird die Funktion neu berechnet.

Basic-Beispiele


Die Namen von Funktionen oder Variablen dürfen nur aus → ASCII-Zeichen bestehen und weder Leerzeichen noch Sonderzeichen (Umlaute) enthalten.

Nach dem Namen der Funktion folgt immer die Liste der Argumente in () Klammern. Die Liste kann leer bleiben (Beispiel Funktion hallo() oder 1 Argument enthalten (Funktion inc(x) ) oder mehrere durch Beistrich , getrennte Argumente (z.B. demo(x,y) )

Zur Rückgabe wird der berechnete Wert formal an den Namen der Funktion zugewiesen (so wie im Beispiel der ↖ Funktion Inc() )



Diese Funktion erhält die beiden Argumente x und y

Danach wird eine Variable mit dem Namen z deklariert: Man muss vor der Verwendung den Namen und den Typ jeder Variablen angeben. Für allgemeine (Gleitkomma)-Zahlen wird immer der Typ Double verwendet.

Die Summe x+y wird berechnet, das Ergebnis mit dem Operator = an die Variable z zugewiesen: Jede Zuweisung erfolgt von rechts nach links.

Die nächste Anweisung zeigt den Unterschied zwischen der Formulierung in Mathematik und Informatik: Der aktuelle Wert von z wird gelesen, dazu wird +1 addiert, das Ergebnis wird an die Variable z zugewiesen, die damit einen neuen Wert erhält.

Zuletzt wird der aktuelle Wert der Variablen z an den Namen der Funktion zugewiesen: Dieser Wert wird (an die Tabellen-Kalkulation) zurückgegeben.



Im Internet findet man Beschreibungen und Beispiele für alle von LibreOffice-Basic oder OpenOffice-Basic angebotenen Standard-Funktionen:

WikiBooks (VBA in Excel),  Microsoft (Funktionen, Mathematische Funktionen),  OpenOffice (Functions, Numeric Functions)