Typen in VBA (Typen in VBA), Lektion, Seite 722873
https://www.purl.org/stefan_ram/pub/typen_vba (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
VBA-Kurs

Typen in VBA 

Bestimmte in der Praxis wichtige Programmbestandteile lassen sich nur schreiben, wenn man darin die richtigen Typen  verwendet. Daher ist es wichtig, die Typen zu kennen.

In VBA  hat jeder Ausdruck (jedes Literal) immer einen bestimmten Typ.

Der Akkusativ Singular des Wortes Typ lautet „Typen“, wenn man damit einen Menschen  meint („Diesen Typen möchte ich niemals wiedersehen.“), im Falle der Typen der Programmiersprache VBA, also in der Bedeutung „Typus“, lautet er aber „Typ“ („Diesen Typ verwendet man für ganze Zahlen“).

Der Typ eines Ausdrucks wird bei Bedarf herangezogen, um die Behandlung  des Wertes des Ausdrucks zu bestimmen.

Dies kann man mit Wäschestücken vergleichen, die entsprechend ihres Typs (Kochwäsche, Buntwäsche, Feinwäsche u.s.w.) gewaschen werden müssen:

Waschen eines Stücks vom Typ „Kochwäsche“: Bei 95 °C mit Vollwaschmittel im Normalwaschprogramm waschen.

Waschen eines Stücks vom Typ „Buntwäsche“: Bei 30 °C mit Buntwaschmittel im Normalwaschprogramm waschen.

Waschen eines Stücks vom Typ „Feinwäsche“: Bei 30 °C mit Feinwaschmittel im Feinwaschprogramm waschen.

Wenn das Etikett mit der Typinformation an einem Wäschestück fehlt, weiß man manchmal wirklich nicht, wie man es waschen soll!

Außerdem wird der Typ auch verwendet, um bestimmte Arten der Behandlung für bestimmte Werte auszuschließen.

Wenn man ein Waschstück in einer Wäscherei zur Kochwäsche gibt, dann wird es vermutlich von einem Mitarbeiter bemerkt werden, falls es sich dabei um ein Waschstück der Feinwäsche handeln sollte, und er wird es dann nicht ohne weiteres kochen lassen.

Typen von Literalen 

„Literal“ ist der Oberbegriff für „Numerale“ und „Zeichenfolgenliteral“.

Wir haben bisher schon verschiedene Literale, wie »65«, »12.82« oder »"Alpha"« kennengelernt. Diese gehören offensichtlich verschiedenen Typen an: Das erste steht für eine Zahl ohne Nachkommastellen, das zweite für eine Zahl mit Nachkommastellen, und das dritte ist gar keine Zahl, sondern ein Text. Tatsächlich ordnet man solchen Literalen in VBA  auch verschiedene Typen zu!

In diesem Zusammenhang bedeutet „Typ“ dasselbe wie „Datentyp“.

»Integer«

Ein Numerale ohne Punkt ».« aus dem Bereich von 0 bis 32767 hat den Typ ›Integer‹.

Der Datentyp ›Integer‹ wird auch als ein ganzzahliger Typ  bezeichnet, da seine Literale ganzzahlig sind, also keine Nachkommastellen haben.

Ein Numerale vom Datentyp ›Integer‹ ist ein ganzzahliges Numerale.

Man kann Typnamen auch als prädikative Adjektive gebrauchen, obwohl dies nicht besonders schön klingt: „Dieses Literal ist Integer.“ bedeutet „Dieses Literal hat den Typ ›Integer‹.“ Man kann Typnamen auch als Präfixoid gebrauchen: „Integer -Literal“ bedeutet „Literal mit dem Typ ›Integer‹“.

Ein nachgestelltes Prozentzeichen kann verwendet werden, um eine Numerale ausdrücklich als Integer-Numerale zu kennzeichen, jedoch ist dies normalerweise nicht nötig. Vor dem Prozentzeichen darf dabei kein Leerzeichen stehen.

Direktbereich

? 5%

 5 

⚠ »5%« bedeutet in VBA nicht „5 Prozent“!

Long

Der Typ eines ganzzahliges Numerales außerhalb des Bereichs von von 0 bis 32767, aber nicht über 2147483647, ist »Long«.

Long‹ ist ebenfalls ein ganzzahliger Typ, so daß man „ganzzahlig“ und ›Integer‹ nicht einfach gleichsetzen darf.

(Dieser Typ wurde erst vor kurzem [2019] in diesen Kurz mit aufgenommen. Er wird daher noch nicht in allen Lektion berücksichtigt.)

»Double«

Ein Numerale mit Punkt ».« hat den Typ ›Double‹.

Dieser Typ ist im allgemeinen der Typ von Literalen mit Nachkommastellen, jedoch wird dieser Typ einem Literal auch dann zugewiesen, wenn das Literal gar keine richtigen Nachkommastellen hat, wie bei »2.0«, da es einfacher ist, das formale Kriterium heranzuziehen, welches am Anfang dieses Abschnitts genannt wurde.

Der Datentyp ›Double‹ wird auch als Gleitkommatyp  bezeichnet, da seine Zahlen intern normalerweise in einer sogenannten „Gleitkommadarstellung“ abgespeichert werden.

Ein Numerale vom Datentyp ›Double‹ ist ein Gleitkommanumerale.

Ein nachgestelltes Nummernzeichen kann verwendet werden, um eine Numerale ausdrücklich als Double-Numerale zu kennzeichen, jedoch ist dies normalerweise nicht nötig. Vor dem Nummernzeichen darf dabei kein Leerzeichen stehen.

Direktbereich

? 5#

 5 

Bei Gleitkommazahlen sind kleine Abweichungen von den Literalwerten in den hinteren Stellen gestattet, wie etwa das folgende Beispiel zeigt.

Direktbereich

? 1.9999999999999999

 2 

Dies zeigt erneut deutlich den Unterschied zwischen einem Numerale und seinem Wert.

Werte des Typs ›double‹ können größer als Werte des Typs ›int‹ sein, dafür sind sie aber in den hinteren Stelle ungenau.

Direktbereich

? 9223372036854775808.

 9.22337203685478E+18 

(Die Ausgabedarstellung »9.22337203685478E18« bedeutet 9,22337203685478 × 10¹⁸.)

Der Typ von »999999999999« ist ebenfalls ›Double‹, obwohl dieses Numerale keinen Punkt enthält, weil es für ein Integer-Numerale einen zu großen Wert hätte.

Direktbereich

? 999999999999

 999999999999 

Da der Typ großer Zahlen ohne Punkt ›Double‹ ist, muß der Wert dann auch wieder nicht mehr ganz genau behandelt werden.

Direktbereich

? 999999999999999999999999

 1E+24 

E-Numeralia

In einem Numerale steht »E« für „mal Zehn hoch“. »2E3« bedeutet also beispielsweise ‹ 2 × 10³ ›.

Dies bedeutet, daß das Dezimalkomma bei »2.0« um drei Schritte nach rechts verschoben werden soll. Man erhält so »2000.0«.

Es bedeutet also nicht etwa ‹  ›.

Direktbereich

? 2E3

 2000 

Ein solches E-Numerale hat den Datentyp ›double‹, auch wenn es keinen Punkt und kein Nummernzeichen enthält.

Wir verzichten an dieser Stelle auf eine ausführliche Darstellung des Aufbaus von E-Numeralia, da E-Numeralia im weiteren Verlauf dieses Lehrgangs nur selten als Teile des Quelltextes vorkommen. Zahlenwerte werden von Programmen zwar manchmal in der E-Schreibweise ausgegeben, aber um diese zu verstehen, reicht die obenstehende Erklärung bereits aus.

»String«

Sowohl ein Zeichenfolgenliteral als auch sein Wert, die Zeichenfolge, haben beide jeweils den Typ ›String‹.

Direktbereich

? "Alpha"

Alpha

Ein “string ” ist ein “character string ”, also – wörtlich – eine Kette (Verkettung) von Schriftzeichen, eine Zeichenkette  (Zeichenfolge).

Typen in VBA 

Wir kennen bisher drei Typen.

Typen

Integer

Double

String

Die Zahlentypen (wie ›Integer‹ und ›Double‹) werden auch „numerische Typen“ genannt.

Typen im Quelltext

Bis auf weiteres schreiben wir Typen nicht  in Eingaben (Ausdrücke). Sie dienen uns lediglich zur Beschreibung  von Eingaben.

Übungsfragen

Welchen Typ haben die folgenden Literale jeweils?

  • 1
  • 1.2
  • 2E3
  • "2"

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722873 stefan_ram:722873 Typen in VBA Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722873, slrprddef722873, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/typen_vba