VBA im Vergleich: Unterschied zwischen den Versionen
Pwania (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Grundsätzliche Unterschiede == === Anspruch und Ansätze === Die Programmiersprache Visual Basic für Applications basiert auf der Programmiersprache Vis…“) |
Pwania (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Category:vba-wiki]] | |||
== Grundsätzliche Unterschiede == | == Grundsätzliche Unterschiede == | ||
Zeile 9: | Zeile 10: | ||
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 | * Parameter (Argumente) einer Prozedur werden standardmäßig als Referenz übernommen (siehe [[Variablen#Übergabeparameter|Übergabeparameter]]) | ||
== Direkter Vergleich == | == Direkter Vergleich == |
Aktuelle Version vom 28. Januar 2023, 00:32 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: