| BASIC war das erste weltweit in großer Zahl verbreitete Software-Produkt - Ein 'Interpreter'-Programm zur Herstellung und Ausführung eigener Programme. | Die heutigen Nachfolger sind zwar viel leistungsfähiger, jedoch weitaus weniger bekannt: LibreOffice-Basic, Visual Basic (for Applications, VBA) OpenOffice-Basic, Star-Basic, ... |
| Basic | Kurze Geschichte |
| Basic-Versionen | Moderne Versionen: LibreOffice-Basic, MS Visual Basic (VBA), ... |
| Basic Anwendung | Installation fertiger Basic-Funktionen |
| Basic Entwicklung | Entwicklung eigener Basic-Funktionen |
| Links |
|
| Allgemeine Basic-Seiten: | |
| Basic-Module | Portable Anwendung von Basic in LibreOffice, MS-Excel, ... |
| Funktionen | Portable Funktionen zur Berechnung spezieller Aufgaben |
| Variablen-Typen | Das Rohmaterial von VB |
| Array | Arrays (Listen, Vektoren) in VBA |
| Programmkontrolle | Verzweigungen und Schleifen, Kommentare |
| Datum & Zeit | Datenformate, Umwandlung ... |
| String | Programmierung von Zeichen und Text |
| Zufall | Erzeugung zufälliger Zahlen und Strings, Mischen |
| VB-Algorithmen | Einige praktische Beispiele für Algorithmen in VBA |
| Spezielle Basic-Seiten: | |
| Große Zahlen | Funktionen zum genauen Rechnen mit (sehr) großen oder kleinen Zahlen |
| Sub - Programme | Sub - Programme für jeden Zweck |
| Zellen & Bereiche | Adressierung, Lesen, Ändern von Kalkulations-Zellen |
| Objekte | Arbeitsblätter, Diagramme, Buttons, Menüleisten, ... |
| Ereignisse | Reaktion auf Events |
| Dateisystem | Zugriff auf Volumes (Drives), Verzeichnisse (Ordner) & Dateien |
| Interaktion | Meldungen, Eingabe, Formulare |
| Farben | Versuch einer Übersicht: Color, ColorIndex, SchemeColor, QBColor, ... |
| Animation | Animation von Modellen (Grafik) mit VBA |
| Fehler | Abfangen von Fehlern, Errorhandler |
| Iteration | Versuch & Irrtum mit Methode |
| RegExp | Reguläre Ausdrücke - nur für Standalone-VB |
| System | Betriebssystem, Konsole & Umgebung |
| Beispiele | Arcustangens, Bernoulli-Zahlen, Binomial-Koeffizient, BitLevel (Bool-Funktionen), Cosinus, Datum und Zeit (ISO-8601, Julianischer Tag (JD, MJD), Kalenderwoche, Ostern, Sommerzeit, Sternzeit, Tag des Jahres, Wochentag, Zeitzone), Ellipsen-Umfang, Euler-Zahl, Exponential-Funktion, Julia-Funktion, beliebig große und genaue Zahlen, Kartografie (Bogenmaß, Dezimalgrad, Ebene-Abstand, Ebene-Richtung, Fehler-Funktion, Kugel-Abstand, Kugel-Richtung, UTM-Länge), Kepler-Bewegung, Legendre-Polynome, Logarithmus, Mandelbrot-Funktion, Mittelwerte, Normalverteilung, Pi (Kreiszahl), Quadratwurzel, Sinus, Text (UTF-8) |
Basic |
|
BASIC (Beginner’s All-purpose Symbolic Instruction Code) war die erste weit
verbreitete und die einzige jemals populäre Programmiersprache.
Die Sprache wurde schon 1964 von von dem aus Ungarn stammenden
John George Kemeny
(links, 1926-1992) und
Thomas Eugene Kurtz (rechts, *1928) am
Dartmouth College in den USA entwickelt.In dieser Zeit gab es keine Anwendungs-Programme im heutigen Sinn, sondern man programmierte selbst. Die Aufgaben waren fast ausnahmslos Rechnungen. Zur Programmierung brauchte man Programmiersprachen (Compiler), die teuer und für AnfängerInnen schwierig zu erlernen waren. |
Das Ziel von BASIC war eine bessere Ausbildung: Diese Programmiersprache war besonders
leicht zu erlernen und zu bedienen. Sie wurde von den StudentInnen von Dartmouth
angenommen, verwendet und rasch weiterentwickelt.Auf Wunsch von Kemeny und Kurtz war BASIC für Schulen und Universitäten kostenfrei. Diese damals ungewöhnliche Idee verhalf BASIC zu einer raschen Verbreitung und der Informatik zu einer weltweit enormen Beschleunigung. Alle Hersteller von Computern und später auch von anspruchsvollen Taschenrechnern nahmen BASIC in ihre Produkte auf. Man findet noch heute alle wichtigen Algorithmen als BASIC-Programme. Die Informatik dieser Zeit wurde mit BASIC weitgehend gleichgesetzt. Auch in Europa wurde BASIC von allen Informatik-LehrerInnen und in der Folge von ihren SchülerInnen erlernt. |
IT-VerbreitungDie Zeit der ersten Expansion der Informatik war geprägt von der fast ausschließlichen Verwendung von BASIC. Vorher wurden Computer-Anwendungen von MathematikerInnen für den speziellen Bedarf der Universitäten (und Militärs) entwickelt - auch Kemeny und Kurtz waren Mathematiker.Mit BASIC wurde die Informatik dagegen für alle geöffnet. Dieses Ziel war beabsichtigt, aber in seinen heutigen Dimensionen unvorstellbar. |
MathematikDie einseitige Orientierung auf Mathematik und Naturwissenschaften erwies sich in der Folge als Nachteil: An den meisten Schulen wurden nur MathematikerInnen für BASIC ausgebildet. Die an sich allgemein verwendbare Programmiersprache wurde nur zum Rechnen verwendet. Andere Anwendungen wären möglich gewesen, wurden jedoch wegen der Fixierung auf die Mathematik stark behindert.Diese Vereinnahmung ist noch heute spürbar: Die IT-Ausbildung wird noch immer von Technikern dominiert, andere Fächer (z.B. Sprachen, Kunst, ...) sind viel zu wenig präsent. |
AnwenderInnen-ProgrammeTextverarbeitung und → Tabellen-Kalkulation waren die ersten weit verbreiteten Programme im heutigen Sinne. Man brauchte dazu erstmals keine Programmiersprache und keine Kenntnisse der Programmierung.Mit der raschen Verbreitung der Personal Computer und dieser AnwenderInnen-Programme war ein ebenso rascher Niedergang von BASIC verbunden. Die ersten Produkte von Microsoft enthielten - im Gegensatz zu den rasch verdrängten Mitbewerbern - keine BASIC Komponenten. |
Visual BasicEtwa gleichzitig mit der Umstellung auf das neue Betriebssystem Windows brachte Microsoft 1991 Visual Basic auf den Markt.Diese Programmiersprache ist ein Kompromiss: Man nahm Elemente der damals modernsten Entwicklungen auf, musste jedoch das extrem einfache Konzept von Ur-BASIC aufgeben. Visual Basic wurde weiterentwickelt, später in .NET umbenannt und stellt heute die wichtigste Entwicklungs-Umgebung für jene EntwicklerInnen dar, die ausschließlich an MS-Produkten arbeiten. Visual Basic und verwandte Produkte (.NET, C#, ASP) sind an einen Hersteller und dessen Produkte gebunden. In diesem Web werden offene und portable Lösungen bevorzugt, deshalb wird Visual Basic in seiner allgemeinen Form hier nicht weiter vorgestellt. |
Visual Basic for Applications (VBA) und seine Verwandten |
|
Visual Basic wurde von Microsoft in seine erfolgreichen Office-Programme integriert
und erweitert, um mit den Objekten dieser Programme zu arbeiten. Damit könnte
man die Funktionalität aller Office-Programme fast
beliebig erweitern. |
• Leider ist es möglich, in VBA-Programme (wie in jedes andere ausführbare Programm) auch schädlichen Code einzusetzen. Die Verbreitung einiger VBA-Viren setzte der allgemeinen Verwendung von VBA ein rasches Ende: VBA-Funktionen (irreführend als 'Makro'-Programme bezeichnet) sind heute in allen Kalkulations-Programmen abgeschaltet und nur auf ausdrückliche Anweisung verwendbar. • Damit ist VBA wieder auf den Kreis der ersten BASIC-AnwenderInnen aus Mathematik, Naturwissenschaft und Technik reduziert. Leider nutzt nur diese Gruppe das enorme Potential von VBA zusammen mit → Kalkulations-Programmen. |
StarBasicDer damals 16jährige Marco Börnes begann 1985 in Lüneburg mit der Entwicklung eigener Programme. Sein späteres Unternehmen StarDivision war mit dem integrierten Programm-Paket StarOffice (auch kommerziell) sehr erfolgreich.1998 wurde StarOffice für den privaten und später auch für den kommerziellen Gebrauch freigegeben. |
In das StarOffice Programm-Paket wurde die Programmiersprache StarBasic integriert. StarBasic verwendet die gleiche Syntax wie VBA. ● Funktionen zur Verwendung in Kalkulations-Programmen sind daher zwischen VBA und StarBasic (und seinen heutigen Nachfolgern) meist ohne Änderung portabel. ■ Subs, (HilfsProgramme) insbesondere mit Zugriff auf das User-Interface sind zwischen VBA und StarBasic nicht portabel. StarBasic verwendet andere Objekte und Methoden als VBA. |
OpenOffice-BasicStarDivision wurde 1999 von Sun Microsystems aufgekauft und das Programm-Paket als OpenOffice, die integrierte Programmiersprache als OpenOffice-Basic weiter entwickelt.OpenOffice war sehr erfolgreich und wurde u.a. auf fast jedem Linux-System eingesetzt. Leider nahm das ausgezeichnete Programm mit der Übernahme von Sun durch Oracle ein jähes Ende. |
LibreOffice-BasicDie Übernahme von Sun durch Oracle 2010 führte zu Konflikten mit dem neuen Eigentümer. Die Office-EntwicklerInnen gründeten das freie Projekt LibreOffice, die integrierte Programmiersprache nennt sich folgerichtig LibreOffice-Basic.LibreOffice wird heute mit allen gängigen Linux-Distributionen ausgeliefert. Auch die meisten OpenOffice AnwenderInnen sind mittlerweile auf LibreOffice umgestiegen. Das ausgezeichnete Programm-Paket ist kostenfrei für alle gängigen Betriebssysteme verfügbar. |
In diesem Webwerden viele Beispiele vorgestellt, die mit → Kalkulations-Programmen gelöst werden, und zwar meist mit Hilfe von Basic-Funktionen. |
Die meisten vorgestellten Funktionen sind unabhängig von der jeweiligen Basic-Versionen portabel. Nur in wenigen Fällen werden getrennte Versionen für LibreOffice-Basic und Visual Basic (VBA) verwendet. ♦ Details zur Verwendung von Basic-Funktionen mit Kalkulations-Programmen |
Visual Basic Scriptist eine Visual Basic Variante, die man ähnlich wie → JavaScript zur Herstellung dynamischer (veränderbarer) Webseiten verwenden kann. VB-Script hat jedoch keine nennenswerte Verbreitung erlangt und ist heute sogar in MS-Browsern ohne besondere Maßnahmen abgeschaltet. |
In diesem Web sind noch einige → VBScript-Seiten enthalten. Sie sind jedoch überflüssig geworden und werden demnächst aufgelassen. ♣ Tipp: Verwenden sie zur Programmierung auf Client-Seite → JavaScript. |
Basic Anwendung |
|
FunktionenBasic-Function's sind fast immer portabel. Man kann sie ohne Änderung zusammen mit jedem Standard (Tabellen)-Kalkulations-Programm (LibreOffice, OpenOffice, MS-Excel, ...) verwenden. Diese Funktionen sind besonders nützlich, weil man damit die Möglichkeiten von Kalkulations-Programmen fast beliebig erweitern kann. Man findet im Internet eine große Anzahl von Basic-(VBA)-Funktionen, darunter viele gut brauchbare. |
Vorsicht ist allerdings angebracht: • Viren sind heute kaum noch ein Problem. Sie werden von allen gängigen Sicherheits-Programmen entdeckt und entfernt. • Es gibt jedoch kein Mittel gegen Programm-Fehler. Amateur-Programme funktionieren zwar meist im typischen Anwendungs-Bereich. Sie sind jedoch selten gegen Fehlbedienung abgesichert und nehmen auf besondere Bedingungen keine Rücksicht. ♣ Testen sie daher Funktionen unbekannter Herkunft sorgfältig. |
Installation auf LibreOfficeDer LibreOffice-Basic Interpreter ist bereits installiert. Diese Anleitung betrifft daher lediglich den Text (QuellText, Sourcecode) von Basic-Funktionen.• Starten sie LibreOffice und öffnern sie eine (neue) Tabellen-Kalkulations-Datei. • Öffnen sie mit den Basic-(Makro)-Manager, markieren sie links die verwendete Datei (z.B. 'Unbenannt1') und legen sie mit Klick auf ein Basic-Modul an. • Kopieren sie den Basic-Text (z.B. die Funktion Hallo ↓ unten) in das QuellText-Fenster. Wenn sich darin bereits Basic Text befindet, dann fügen sie den neuen Text am Ende an. • Schließen sie das Fenster des Basic-(Makro)-Managers. |
Installation auf MS-ExcelDer Visual Basic for Applications (VBA) Interpreter ist bereits installiert.• Starten sie MS-Excel und öffnen sie eine (neue) Tabellen-Kalkulations-Datei. • Öffnen sie mit die VBA-Ansicht, markieren sie links im Projekt-Manager die verwendete Datei (z.B. 'Mappe1') und legen sie mit Menü-Befehl ein Basic-Modul an. • Kopieren sie den Basic-Text (z.B. die Funktion Hallo ↓ unten) in das QuellText-Fenster. Wenn sich darin bereits Basic Text befindet, dann fügen sie den neuen Text am Ende an. • Kehren sie mit Taste oder mit Klick auf das Excel-Icon zum Kalkulations-Programm zurück. |
|
Demo-Funktion 'Hallo'
Diese Funktion öffnet bei Anwendung ein kleines Fenster (MessageBox)
mit dem angegebenen Text und berechnet die
Antwort
auf die zentrale Frage des Universums. Die Funktion ist - wie fast alle Basic-Funktionen -
mit jedem Kalkulations-Programm verwendbar.
|
Basic-Quelltext der Funktion Hallo
Function Hallo()
MsgBox "Hallo"
End Function
Hallo = 5*8+2 |
Anwendung in LibreOffice-CalcBasic-Funktionen sind sofort nach Einfügen des Funktions-Textes verwendbar. Markieren sie eine beliebige Zelle der Kalkulation und geben sie ein:=Hallo()
Bestätigen sie mit -Taste oder durch Klick
auf das grüne Häkchen 'Übernehmen'.
|
Anwendung in MS-ExcelIn MS-Excel können sie die Funktion wahlweise manuell eintragen, so wie links für LibreOffice beschrieben, oder mit dem Funktions-Assistenten, z.B. mit Menü , wählen sie =BenutzerInnen-definiert, =Hallo.Bestätigen sie ihre Wahl. |
|
Wenn man die kleine Unanehmlichkeit in Kauf nimmt, um den Basic-Text zu installieren, dann
ist die Verwendung von Basic-Funktionen denkbar einfach. Die meisten Funktionen sind
umfangreicher, aber auch nützlicher als das hier verwendete Beispiel. Sowohl LibreOffice als auch MS-Excel bieten darüber hinaus zusätzliche Möglichkeiten zum Import fertiger Funktions-Module. |
Insbesondere die Verwendung von Algorithmen mit Schleifen ist in einfachen
Kalkulations-Programmen schwierig, mit Basic jedoch ganz einfach. Weitere Optionen erlauben die fixe Installation praktischer Basic-Funktionen für alle Kalkulations-Dateien bzw. alle AnwenderInnen des jeweiligen PC. ♦ Details zu Basic-Modulen in LibreOffice und MS-Excel. |
SicherheitDie Ausführung von Basic-Programmen (irreführend 'Makro'-Programmen) ist ohne weitere Maßnahmen zur Sicherheit abgeschaltet. Das gilt für alle Dateien, die Basic-Programme enthalten, auch für selbst erstellte.► Sie müssen ausdrücklich die Zustimmung zur Freigabe der Basic-(Makro)-Programme geben, um sie zu verwenden. Zustimmung in MS-Excel:
Erfolgt leider je nach Version sehr unterschiedlich. Konsultieren sie evtl. die Hilfe
(Stichworte Makro, Visual basic, VBA, ...). Manchmal müssen sie danach die Datei sogar
schließen und erneut öffnen.Neuere Excel-Versionen speichern Dateien mit Basic-Programmen mit der speziellen Datei-Erweiterung *.xlsm |
Zustimmung in LibreOffice:
Menü .♣ Tipp: Wählen sie die mittlere Stufe: Dann wird bei jedem Öffnen der Datei ihre Zustimmung eingeholt. LibreOffice bietet eine praktische Option: Im Register des gleichen Fensters können sie oft verwendete Dateien eintragen - In diesem Fall gilt ihre Zustimmung ohne weitere Fragen. |
(Hilfs)-ProgrammeBasic-Sub's sind im Gegensatz zu Funktionen kleine Programme, die meist zur Unterstützung des Unter-Interface dienen. Die Möglichkeiten sind nur durch die Phantasie begrenzt.• Man kann damit auf alle Zellen und Arbeitsblätter zugreifen, deren Daten lesen, schreiben oder löschen, neue Objekte (Arbeitsblätter, Diagramme, ...) erstellen, ihre Eigenschaften bis ins kleinste Detail nach Bedarf anpassen, usw. • Darüber hinaus kann man auf alle Dateien und sogar auf die Registry-Datenbank zugreifen, Betriebssystem-Funktionen ausführen, Programme starten, sogar den PC abschalten... |
Subs sind normalerweise nicht portabel. Man muss sie mindestens in getrennten Versionen für LibreOffice und MS-Excel herstellen, weil die Objekte dieser Programme unterschiedlich organisiert sind und mit anderen Methoden manipuliert werden. • Die Entwicklung aufwändiger Subs ist mehr eine teure Sackgasse als eine praktische Erweiterung. In diesem Web werden daher nur wenige Sub-Beispiele vorgestellt. ♣ Tipp: Aufwändige Spezial-Anwendungen erstellt man besser als dynamische Webseiten (→ ein einfaches interaktives Beispiel). |
|
|
|
Standards und Hersteller: MSDN - Die offizielle VBA-Homepage bei Microsoft |
Tutorials & Beispiele: TU Harburg - VBA in 21 Tagen |
|
Resourcen: programmer.com - knapp aber gut planet-source-code - aboutvb - VB Archiv |
●
Visual Basic 2005 Handbuch (Andreas Kühnel / Galileo) Umfassend, Doku, Beispiele und Kommentare. |
|
|