VBA im Vergleich: Unterschied zwischen den Versionen

Aus VBA-wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „== Grundsätzliche Unterschiede == === Anspruch und Ansätze === Die Programmiersprache Visual Basic für Applications basiert auf der Programmiersprache Vis…“)
 
Zeile 9: Zeile 9:
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:
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) verwendet keine Zeiger
* VB(A) kennt keine Vererbung von Klassen Dafür werden folgende Erleichterungen angeboten:
* 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)
* 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)
* 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")
** Einer Variable vom Typ Datum kann also direkt ein Text übergeben werden:  
* Ebenso können Zahlen in Zeichenketten, Zeichenketten in Währungsangaben etc. implizit umgewandelt werden Zusätzlich sollten Sie Folgendes beachten:
<span style="Color:blue"> Dim </span>dteDate<span style="Color:blue"> as Date </span>
  dteDate <span style="Color:gray">=</span> <span style="Color:gray">"2016-04-15"</span>
anstatt  
  dteDate <span style="Color:gray">=</span> CDate<span style="Color:gray">("2016-04-15")</span>
* 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
* In VBA müssen Sie Variablen standardmäßig nicht zwingend deklarieren
* Natürliche Variablen können nicht bei der Deklaration Instanziiert werden
<span style="Color:blue"> Dim </span>strText<span style="Color:blue"> As String </span><span style="Color:gray">=</span> <span style="Color:gray">"Hallo"</span>            <span style="Color:green">' Erzeugt einen Syntaxfehler!</span>
* Nicht deklarierte Variablen werden automatisch als Variant verstanden
* Nicht deklarierte Variablen werden automatisch als Variant verstanden
* Siehe [[Anhang#Option Explicit|Option Explicit]]!
* Siehe [[Anhang#Option Explicit|Option Explicit]]!
* Parameter (Argumente) einer Prozedu werden standardmäßig als Referenz übernommen (siehe [[Variablen#Übergabeparameter|Übergabeparameter]]
* Parameter (Argumente) einer Prozedur werden standardmäßig als Referenz übernommen (siehe [[Variablen#Übergabeparameter|Übergabeparameter]])


== Direkter Vergleich ==
== Direkter Vergleich ==

Version vom 5. Juni 2018, 10:17 Uhr

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: