VBA im Vergleich

Aus VBA-wiki
Zur Navigation springen Zur Suche springen

Grundsätzliche Unterschiede

Anspruch und Ansätze

Die Programmiersprache Visual Basic für Applications basiert auf der Programmiersprache Visual Basic, welche Anfang der 1990er entwickelt und 2002 von VB.NET abgelöst wurde. Visual Basic war bis dahin eine sehr erfolgreiche weil einfach erlernbare und unkomplizierte Programmiersprache für Windows-Anwendungen. VBA wurde dafür entwickelt, Office-Anwendungen fernzusteuern und das auf eine einfache und zugängige Art und Weise, damit auch Einsteiger schnell gute Ergebnisse erzielen können. Der erste Ansprechpartner für den VBA-Entwickler ist daher nicht das Betriebssystem, sondern die Office-Anwendung, für welche die Lösung gedacht ist.

Typische Unterschiede zu anderen Programmiersprachen

Folgende Technologien werden daher weder in Visual Basic noch in VBA angeboten, um die Komplexität gering zu halten und, im Bezug auf Zeiger, mögliche Fehlerquelen zu vermeiden:

  • VB(A) verwendet keine Zeiger
  • VB(A) kennt keine Vererbung von Klassen

Dafür werden folgende Erleichterungen angeboten:

  • VB(A) bietet keine singulären Datentypen an (außer Booleschen Werten), zum Beispiel keine Character (einzelne Buchstaben)
  • Eine explizite Umwandlung von Datentypen ist nicht nötig, sie wird automatisch durchgeführt (sofern dies möglich ist)
    • Einer Variable vom Typ Datum kann also direkt ein Text übergeben werden:
 Dim dteDate as Date 
 dteDate = "2016-04-15" 

anstatt

 dteDate = CDate("2016-04-15")
  • Ebenso können Zahlen in Zeichenketten, Zeichenketten in Währungsangaben etc. implizit umgewandelt werden

Zusätzlich sollten Sie Folgendes beachten:

  • In VBA müssen Sie Variablen standardmäßig nicht zwingend deklarieren
  • Natürliche Variablen können nicht bei der Deklaration Instanziiert werden
 Dim strText As String = "Hallo"            ' Erzeugt einen Syntaxfehler!
  • Nicht deklarierte Variablen werden automatisch als Variant verstanden
  • Siehe Option Explicit!
  • Parameter (Argumente) einer Prozedur werden standardmäßig als Referenz übernommen (siehe Übergabeparameter)

Direkter Vergleich

Die folgenden Vergleiche von VBA mit anderen Programmiersprachen erheben nicht den Anspruch, vollständig oder umfassend zu sein, sie sollen lediglich einige Unterschiede veranschaulichen und somit den Einstieg in VBA erleichtern: