Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Excel 2016 VBA Grundkurs

Datentypen im Überblick

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Wie in Excel-Tabellen, gibt es auch in der VBA-Programmierung unterschiedliche Datentypen, um den speziellen Anforderungen unterschiedlicher Inhalte gerecht zu werden. Selbst im Bereich von Zahlen gilt es, ganzzahlige oder solche mit Nachkommastellen zu differenzieren und deren möglichen Maximalwert zu berücksichtigen, um Speicherplatz zu sparen.

Transkript

Die Datentypen sind also ein ganz zentraler Punkt innerhalb einer Programmiersprache. Da wird für die Datentypen fein unterschieden, zwischen nicht nur Zahlen, sondern auch Ganzzahligen Zahlen und solchen mit Nachkomma-Anteil. Ganz getrennt davon werden Texte, und diese drei zusammen werden als Variant-Datentyp bezeichnet. Variant ist also ein ganz besonderer Datentyp, der wahlweise Text oder Zahl mit Nachkomma und ganzzahlige Zahl sein kann. Unabhängig davon, das sind sozusagen die einfachen Datentypen hier, gibt es sogenannte Objekt-Datentypen, die belegen eigentlich locker 90 % aller möglichen Datentypen, fallen aber nicht so sehr auf. In Objekt-Datentypen versteckt oder enthalten sind beispielsweise Tabellenblätter, Bereiche oder ganze Dateien, wenn es denn sein muss, tatsächlich wird in einem Objekt-Datentyp nicht wie bei den einfachen Datentypen darüber das Objekt selber enthalten sein, sondern nur ein sogenannter Zeiger, wo also das Objekt im Hauptspeicher beschrieben ist. Das muss mich aus Programmierersicht erstmal nicht interessieren, und auch die drei unteren überhaupt sind jetzt für die Datentypen nicht so spannend, die wesentlichen Unterschiede finden sich bei den beiden Zahlen-Datentypen. Mit denen möchte ich mich jetzt also genauer beschäftigen, fangen wir an mit dem Datentyp für ganzzahlige Zahlen. Ich habe hier schon ein paar Beispiele als symbolisierte Kugeln hingelegt, also eine 0, eine 42, eine 278,4 und diese Datentypen gibt es für ganzzahlige. Der kleinste Datentyp ist Boolean, nach dem englischen Mathematiker Boole, also eine Ja/Nein-Entscheidung, die oft auch als Bit bezeichnet wird. Da drin steht entweder eine 0, oder eine -1. Die 0 bedeutet Nein, die -1 bedeutet Ja. Tatsächlich können Sie in Visual Basic oder auch in VBA einfach unterscheiden zwischen 0 und allem anderen. Also jede andere Zahl außer null wird dann als Ja, beziehungsweise als Wahr bezeichnet. Sie können das hier auch so lesen, dass Sie sagen, da stehen alle Zahlen von 0 - 1 drin. Denn der nächstgrößere Datentyp, da liest sich dann entsprechend Byte, also acht Bits zusammen, ein Byte, kann 0 - 255 als Inhalt aufnehmen, immer ganzzahlig. Diese komische Grenze mit den 255 liegt daran, dass 2 hoch 8 = 256 ist, aber dann wäre die 0 nicht dabei. Das ist also um eins verschoben, und 0 - 255 ist also so eine Zweierpotenz. Alles immer ganzzahlig, und wenn das nicht reicht, dann ist es Integer, das geht von -32.000 bis +32.000, fängt also nicht bei der 0 an, sondern hat ein Vorzeichen. Tatsächlich geht der Wertebereich von -32.768 bis +32.767, da wären die Zweierpotenzen, assymetrisch wegen der 0 in der Mitte, drin, aber so genau müssen Sie sich das nicht merken. Merken Sie sich einfach +- 32.000, und wenn Sie so knapp an die Grenzen kommen, dass Sie es genau wissen müssten, dann nehmen Sie lieber den nächstgrößeren, nämlich den langen Integer-Wert, der inzwischen eigentlich nur noch Long heißt. Lang im Sinne von "da passt mehr rein", der ist breiter, und dort kriegen Sie ungefähr +- 2,1 Milliarden als Werte rein. Und wenn das immer noch nicht reicht, gäbe es noch einen Currency, also einen Währungs-Datentyp, der mag Sie ein bisschen überraschen, weil er bei den ganzzahligen steht, denn er scheint Nachkommastellen zu haben, sodass wir natürlich auch das nach dem Komma speichern können, aber Sie werden gleich sehen, das ist gar nicht so. Diese Datentypen sind also für ganzzahlige Zahlen geeignet, das heißt, die 0 können Sie im Prinzip in allen davon speichern, aber am sparsamsten sozusagen im Boolean-Datentypen, und für die 42 bräuchte es mindestens ein Byte, oder nach Belieben immer sehr viel mehr, die 278,4 können Sie deswegen nicht speichern, weil der Nachkomma-Anteil einfach weggelassen würde. Dann sollten wir und doch noch mal den Sonderfall mit Integer angucken, zum Beispiel für Postleitzahlen. Da liegt es irgendwie auf der Hand, das sieht aus wie eine Zahl, die kleiner ist als 32.000, also könnte man das versuchsweise in Integer speichern. Sollte man aber nicht, ganz furchtbarer Fehler, gucken Sie bloß nicht auf die Anzahl der Ziffern, tatsächlich bedeutet es nämlich, kleiner als 32.000, und schon ein Stadtteil von Bielefeld, nämlich Sennestadt, hat die Postleitzahl 33689, das ist definitv größer, und alles südlich von Bielefeld sowieso. Mit 32.000 kriegen Sie mal gerade ein Drittel aller Postleitzahlen in Deutschland untergebracht. Das ist also ungeeignet, eigentlich würde man sagen, wenn es eine Zahl ist, dann bitte wenigstens als Long-Wert, das reicht, aber im wirklichen Leben sind Postleitzahlen sowieso keine Zahlen, sondern enthalten Buchstaben, in den Niederlanden zum Beispiel, in Großbritannien, deswegen speichert man die sowieso als Zeichenketten. Aber wenn es eine Zahl sein müsste, weil es nur deutsche Postleitzahlen sind, dann muss es mindestens Long sein. Und damit kommen wir zu dem Currency-Datentyp Währung, denn der sieht ja erstmal so aus, als könnte er nur ganzzahlig speichern. Hier haben wir allerdings 18 Euro und 14 Cent rumliegen, wie kriegen wir das denn gespeichert? Genau genommen wird dort eine Zahl benutzt, die heißt 18,1400, und dann wird das Komma weggelassen, sodass es im Grunde also eine 181.400 ist, eine ganze Zahl mit sechs Stellen. Die wird gespeichert, und wann immer sie ausgelesen oder reingeschrieben wird, wird das Komma schnell um vier Stellen verschoben, und da steht wieder 18,14. Deswegen funktioniert das so wunderbar mit ganzzahligen Datentypen hier, dieser Datentyp ist speziell darauf vorbereitet, dass er Ihnen Kommazahlen anbietet, aber ganzzahlig speichert. Und warum macht er das? Weil ganze Zahlen auf dem Computer durch das Binärsystem perfekt und eindeutig gespeichert werden können. Nachkommazahlen leider nicht, da ist eine gewisse Ungenauigkeit drin, die wird meistens angegeben wie bis zur sechsten Stelle sicher, und danach nur wahrscheinlich. Auch nach der achten Stelle oder nach der achtzehnten, Excel selber rechnet mit 18 Stellen Genauigkeit, das ist eben irgendwo ein Ende der Genauigkeit. Und deswegen, damit bei Währungen nichts schiefgeht, werden exakt vier Stellen nach dem Komma als ganze Zahl behandelt. Und damit kommen wir zu den Nachkommazahlen. Davon gibt es ein paar weniger als Datentypen, die drei wesentlichsten sind diese: Wo es Sie zuerst überraschen mag, warum Date eine Nachkommazahl sein soll. Das was dort gespeichert wird, sieht für Sie natürlich wie ein Datum aus. In den Grenzen vom 1.1.100 bis zum 31.12.9999, das ist eine typisch amerikanische Idee, der 1.1.100, da sind zumindestens in Europa Tageswerte, Ausbruch des Vesuvs beispielsweise, Ermordung von Caesar, Tageswerte bekannt, wo Sie ein Datum wissen, aber leider in diesem Datentyp nicht speichern können. Hingegen ist bis zum Sylversterabend 9999 erwartungsgemäß noch die ein oder andere neue Excel oder VBA-Version drin, und ihre Projekte gehen wahrscheinlich auch nicht so weit, das ist also selbst für Star Trek-Fans völlig überdimensioniert, hilft aber nichts, das ist der Datumsbereich, und warum es bei Nachkommazahlen steht, liegt daran, dass das Datum eine Nachkommazahl ist. Wir haben also im Moment ungefähr 42.600, das ist der Tag, und das ist ja auch gleichzeitig die Anzahl der Tage seit dem 1.1.1900, das ist der Tag 1, der 2. Januar ist der Tag 2, und der 31. Januar ist dann der Tag 31, und irgendwann jetzt ungefähr ist der Tag 42.600. Und die Uhrzeit, obwohl der Datentyp nämlich Date heißt, ist das da drin tatsächlich auch Time enthalten, ohne dass Sie das irgendwie wegschalten können, die steht nur dann auf 0. Die Uhrzeit ist Prozente des heutigen Tages, also wenn Sie die 42.600,5 schreiben, dann meint das, am 18.08.2016 und dort um 12 Uhr, Komma 5, wenn Sie Komma 75 schreiben, ist es 18.00 Uhr und jeder beliebige Nachkommawert dazwischen. Was Sie also als Stunden und Minuten sehen, ist in Wirklichkeit eine Nachkomma-Zahl. Deswegen steht Date, obwohl es sich nicht so anfühlt, der Form halber bei den Nachkomma-Zahlen. und deswegen übrigens können Sie mit Date auch so wunderbar rechnen. Sie können dem Wert 42.600 einfach drei Tage draufzählen, dann ist es der 21.8., und Sie können auch vierzehn Tage weiterzählen, und es wird trotzdem immer als Datum angezeigt, auch wenn Monatswechsel oder Jahreswechsel dazwischen ist. Die 'richtigen' sozusagen Nachkomma-Zahlen sind diese beiden, Single und Double, die sind ungefähr von 3,4*10 hoch 38, jeweils plus und minus, oder sogar 10 hoch 308 im Wertebereich. Im Normalfall kommen Sie mit Single aus, wenn es mal nicht reichen sollte, dann haben Sie mit Double soviel Reserve, dass ich mir da keine Sorgen machen würde, da können Sie locker die Anzahl der Sekunden seit dem Urknall drin speichern, ziemlich egal, wann der stattgefunden haben mag, also das reicht für größere Zahlen dicke. Das ist immerhin eine 1 mit 38 Nullen, oder sogar eine 1 mit 308 Nullen, und das bedeutet, wenn Sie diese vergleichsweise mickrige Zahl darin speichern wollen, dann muss es mindestens der Single-Datentyp sein. Auch wenn der, muss man ehrlich sagen, hier jetzt völlig überdimensioniert ist, eine 1 mit 38 Nullen ist weit jenseits dessen, was wir hier brauchen. Aber es gibt keinen kleineren Nachkomma-Datentyp, es sei denn, Sie kämen mit Währung aus, der aber in Wirklichkeit ein ganzzahliger Datentyp ist. Also, die wesentliche Unterscheidung bei Zahlen besteht in ganzzahligen oder in Nachkomma-Datentypen, und dort gibt es dann noch etwas feinere Aufteilung, und vor allem bei den Nachkomma-Zahlen können Sie eigentlich auf Double zugreifen, das ist zwar im Speicherverbrauch ein bisschen höher, aber das fällt innerhalb eines Excel VBA-Programms nicht wirklich auf.

Excel 2016 VBA Grundkurs

Lassen Sie sich systematisch in die Excel-Programmierung mit Visual Basic for Applications (VBA) einführen.

7 Std. 25 min (66 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Exklusiv für Abo-Kunden
Erscheinungsdatum:30.08.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!