MS-Excel + Basic

MS-Excel (Visual) 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 LibreOffice oder OpenOffice



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.



In neueren Versionen wurden die Basic-(Makro)-Funktionen leider zunehmend versteckt und schwieriger zugänglich. Nach einmaliger Änderung der Konfiguration ist die Anwendung wieder ähnlich einfach wie in den klassischen Excel-Versionen.

MS-Excel Konfiguration


Suchen sie den unscheinbaren Menü-Befehl Excel Optionen (z.B. im Office-Menü), danach über unterschiedliche Zwischen-Stufen eine Option ähnlich Entwicklungs-Registerkarte in der Multifunktionsleiste anzeigen:
Markieren sie diese Option.



In den meisten Versionen wird man beim Öffnen einer Datei mit Basic-(VBA)-Funktionen mit einem unübersehbaren Dialog-Fenster nach der Zustimmung gefragt. Es gibt jedoch offenbar Versionen, in denen man diesen Hinweis leicht übersehen kann.

Ab Excel-2007 ist die Konfiguration gut getarnt und stark eingeschränkt: Menü   Office (buntes Icon links oben) / Excel-Optionen (rechts unten versteckt) / Vertrauensstellungscenter / Einstellungen.

Eine Arbeit mit VBA ist ohne ständige Belästigung nur mehr dann möglich, wenn man dafür einen eigenen Ordner anlegt und diesen konfiguriert:   Vertrauensstellungscenter / Vertrauenswürdige Speicherorte

Tipp: Konsultieren sie die integrierte Hilfe ihrer Version und probieren sie das Verhalten ihrer Excel-Version beim Öffnen einer Datei mit Basic-(VBA)-Funktionen praktisch aus.



Neuere Excel-Versionen können in normalen Kalkulations-Dateien keine VBA-Funktionen speichern.
Dazu wird die spezielle Datei-Version *. xlsm verwendet.

Basic-Organisation in MS-Excel


Suchen sie den unscheinbaren Menü-Befehl Excel Optionen (z.B. im Office-Menü), danach über unterschiedliche Zwischen-Stufen eine Option ähnlich Entwicklungs-Registerkarte in der Multifunktionsleiste anzeigen: Markieren sie diese Option.



Das letzte Objekt ist normalerweise die aktuelle Excel-Datei als
VBAProject (DateiName)
Darin sind als Sub-Objekte die Arbeitsmappe (WorkBook) und die einzelnen Arbeits-(Tabellen)-Blätter (Sheets) enthalten.
Wenn die Excel-Datei bereits ein Basic-Modul enthält, dann wird es ebenfalls als Sub-Objekt angezeigt.



Markieren sie im Register Editor mindestens die Optionen Automatische Syntax-Prüfung und Variablendeklaration erforderlich


Im rechten Teil-Fenster wird der Basic-Quelltext des Moduls angezeigt.
Er sollte bei guter Basic-Konfiguration bereits diese Zeile enthalten:
Option Explicit
Weiteren Quelltext darf man nur nach dieser Zeile einfügen, niemals davor.


Wechseln sie mit Alt-F11 wieder in das Excel-Fenster und probieren sie die Basic-Funktion aus:
Tragen sie in eine Zelle (z.B. in A1) diese Formel ein:
=Hallo()
Die Funktion zeigt den angegebenen Text an.

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


Anwendung in Excel:
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 MS-VBA angebotenen Standard-Funktionen:

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