Excel 2013 VBA Grundkurs

Datentypen

Testen Sie unsere 1957 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Anstatt eine Variable für einen ganz bestimmten Datentyp zu wählen, können Sie auch einen der eher allgemeinen Datentypen Variant oder Object einsetzen. Was sich zunächst wie ein Vorteil anhört, macht aber in Wirklichkeit das Programmieren viel mühsamer.

Transkript

Ab jetzt sind Sie durch Option Explicit natürlich gezwungen, Variablen zu deklarieren. Das kann man völlig lieblos so machen Sub DeklariereLieblos. In dem Sie einfach schreiben Dim test As Variant. und wo ich unglücklich wäre, es weil die keine ungarische Notation hat. Also man sieht es nicht, deswegen würde ich wenigstens das erwarten. Das bedeutet, diese Variable von Datentyp Variant und der enthält nach beliebigen Zahlen. Integer, Long, Double/Single, was immer Sie wollen, oder Texte. Der also der zusammenfassende Datentyp für alles, spricht ein Datentyp für unentschiedene. Das ist sehr praktisch. Vor allem, wenn Sie die völlig lieblose Variante benutzen Dim x. Da es keine ungarische Notation, keine echte Deklaration, auch das ist ein Variant. Also das kann ich schon gar nicht mitansehen, was da steht. Von daher nehme ich das mal wieder raus. Und das können Sie natürlich jetzt schreiben varTest, Strg + Leertaste, ist gleich sagen wir 99. Und damit Sie sehen, dass es klappt, lass’ ich das ausdrücken Debug.Print varTest. Können wir mit F5 direkt laufen lassen. Da erscheint unten die 99. Und ich kann direkt anschließend hingehen und sagen varTest, ist aber dieses Mal ein Datum. Also Weihnachten völlig beliebiges Datum. Denken Sie an die umgekehrte amerikanische Schreibweise und das können wir direkt hier unter kopieren. Dann werden also jetzt nacheinander. Da brauche ich ein bisschen Platz hier, zwei verschiedene Zahlen angezeigt, also mit F5 erstens die 99, zweitens ein Datum. Wie Sie sehen, wurde somit eine Ausgabe mit einer deutschen Reihenfolge mit Punkt gemacht. Das kann man so weiterführen. Wenn Sie es darauf anlegen, kommt jetzt als nächstes ein Text darein und auch den können wir mit Debug.Print anzeigen. Also noch mal vollständig, F5 und Sie sehen Variant-Variablen so unglaublich praktisch. das bedeutet, aber auch Sie behaupten sich eine durchaus gewünschte Kontrolle. Zum einen wenn Sie wissen, dass eine bestimmte Variable nur einen bestimmten Wert haben kann, dann sollten Sie das auch entsprechend vorgeben. Sub Anzahl von irgendwas sollte nur eine Variable benutzen, die auch intAnzahl heißt und As Integer deklariert ist. Damit das Programm direkt verweigert, Dim intAnzahl = Lorenz Hölscher. Wenn Sie das jetzt versuchen laufen zu lassen, ich nehme unten alles weg. Sie haben eine Integer Variable deklariert und versuchen der jetzt völlig fehlerhaft einen String einer Zeichenkette zuzuweisen. Dann gibt es mit dem F5 eine Meldung, sogenannte Laufzeitfehler, die sind durchnummeriert und haben hier einen Leuterungstext. Typen unverträglich heißt Zeichenkette in Integer kann nicht klappen. Da oben hat es geklappt. Und wenn Sie es genauer gucken, wollen mit Dim, aber hier reicht ein einfaches Beenden. Wir wissen es, was passiert ist. Dann schützt sie das davor, im kurz solche gravierenderen Fehler zu machen. Das sieht es mal lästig aus, ist aber ein Schutz. Das geht noch viel weiter und dies noch viel-viel hilfreicher bei Variablen von Datentyp Object. Object ist hier sozusagen das bessere Variant. Variant fasst Zahlen und Texte zusammen. Object fasst aller anderen besonderen Datentypen zusammen, die wir gar noch nicht wirklich besprochen hatten. Ich greife deswegen noch mein kleines Beispiel raus, also Sub ZellInhalt. Eine Zelle können Sie ansprechen über ihre Adresse. Das ist eine der Möglichkeiten. Also ich erfinde eine Variable Dim ObjectZelle As Object. Und bei Object Variablen muss ich ein Set schreiben. Theoretisch müssten Sie hier vor ein Let schreiben. Let intAnzahl = hoffentlich richtiger Wert. Das macht kein Mensch. Wissen Sie meist gar nicht, aber bei Set ist es notwendig. Jetzt schreibe ich ObjectZelle = und greife jetzt auf eine Tabelle zu. Wir können hier einfach schreiben ActiveCell. ActiveCell ist die Zelle, in der der Cursor grade steht. Wir müssen gleich vernünftig hinstellen und kann jetzt von diesem den Inhalt ausdrücken. Also ObjectZelle, Punkt, Value. Die Value ist eine Eigenschaft von diesem Object und Sie sehen, das muss ich selber schreiben. Erstmal gucken, ob es überhaupt funktioniert. Also gespeichert. Ich muss mit Alt + F11 in einer Zelle gehen, wo auch fast drin steht. Eine Farbe reicht nicht. Also schreiben wir hier abc rein. Die aktive Zelle ist die, wo der Cursor drin steht, und mit Alt + F11 kann ich jetzt dieses hier ausführen, und mit dem F5 wird tatsächlich von der ActivCell diesem Objekt der Wert ermittelt. Aber Sie gaben gemerkt, das müsste ich schreiben. Jetzt möchte ich alternativ mit den besseren Variablen Deklaration machen. Da können wir weitere Teile kopieren, aber es darf natürlich nicht gleichnamig sein. Es wird nicht As Object, sondern As Range deklariert. Range ist der passende Datentyp für Zellen. Und der unterschiedlich ist jetzt schon hier. ObjectZelle weiß, was so ein Datentyp kann, der kann nämlich mehr als einfach nur Wert aufnehmen, der kann sagen. "Ich hab mit und ohne Eigenschaften". Und ich sehe da, die Value ist eine seiner Eigenschaften und ich die kann aus der Liste rauskriegen und muss die nicht raten. Das macht korrekt den deklarierten Datentyp so viel praktischer, dass Sie das auf jeden Fall machen sollen. Die harmlos sind hier Zahlen und Texte sind nett. Das sollte man sich es auch angewöhnen, als Schutz. Aber die sind unersetzlich. Wenn Sie es vernünftig machen, dann haben Sie dort direkt im Vorteile, dass Sie viel-viel schnelle programmieren können. Sie wissen von jedem Objekt hier, tatsächlich sofort, was es jeweils kann. Damit es auch korrekt geschrieben ist, werde ich auf das Prefix verbessern. Natürlich nicht zu Fuss, da haben wir 22000 verschiedener Aufrufen in einer Prozedur, sondern, wenn es so markiert ist mit Bearbeitern Ersetzen, Strg + H, falls ich das häufig brauche. Und Objektzellen würden dann durch rngZelle ersetzen. Rng im aktuellen Modul ist ein bisschen viel. In der aktuellen Prozedur reicht und alle ersetzen. Drei Stück, sieht gut aus. Und nach dem OK können Sie Abbrechen. Dann sind diese drei hier verbessert. Funktionieren soll das auch. Also mit dem F5, sehen Sie, kann genauso drauf zu greifen. Aber ist in der Schreibweise viel-viel besser und zwar einfach nur deswegen, weil ich vernünftigen Datentyp deklariert habe.

Excel 2013 VBA Grundkurs

Holen Sie aus Excel 2013 mit der integrierten Programmiersprache VBA auch das letzte Quäntchen an Funktion heraus und lassen Sie sich dazu zeigen, was alles möglich ist.

6 Std. 18 min (63 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

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!