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 VBA für Profis: Klassen (Konzepte)

Eine einfache Stoppuhr-Klasse

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die Stoppuhr-Klasse benötigt für ihre Funktionalität nur ganz wenige Prozeduren. Dadurch ist sie sehr übersichtlich und kann mit einer kurzen Prozedur getestet werden.

Transkript

Um eine Klasse für die Stoppuhr mit diesen drei Methoden, Eigenschaften, Funktionen, was auch immer zu schreiben, brauche ich also wieder ein neues Klassenmodul, ausklappen hier auf "Klassenmodul wechseln" und das werde ich deswegen "clsStoppuhr" nennen und mit "Return" bestätigen und dann muss ich eigentlich nur diese drei Prozeduren beziehungsweise eine Property einbauen. Die Erste wird eine "public", das kann man sich eigentlich schenken, eine "Sub Start" und die anderen kann ich auch schon mal schreiben eine "Sub Stop". Das ist das typische, was eine Stoppuhr macht und die müssen sich Zeiten merken, deswegen steht da noch nichts drin, ich brauche also Modul-öffentliche Variablen, die heißen bei mir "m_datAnfang As Date", Date klingt so ein bisschen irreführend, es enthält natürlich auch "Time" und entsprechend "Dim m_datEnde As Date". Damit man den Unterstrich weitersieht, mache ich jetzt hier ein Kommentarzeichen. Und beim Start der Stoppuhr passiert überhaupt nichts anderes als das ich in "datAnfang" die aktuelle Zeit nebenbei auch mit Datum, aber vor allem die Zeit reinspeichere. Und beim Stopp entsprechend in "datEnde" schreibe ich die jeweils aktuelle Zeit rein. Wann immer das aufgerufen wird, speicherte in dieser Modul öffentlichen Variable die Zeit, in jeder von diesen. Wenn die Instanz dieser Klasse gestartet ist, befinden sich die Variablen sozusagen gekapselt. Zwei unterschiedliche Stoppuhren wissen nichts voneinander und haben ihre eigenen Modul-öffentlichen Variablen, deswegen muss ich mich überhaupt nicht darum kümmern. Diese Klasse bildet sozusagen eine Kapsel um alle Modul-öffentlichen Variablen. Um die Lokalen sowieso, die befinden sich immer innerhalb der Prozedur, aber vor allem die Modul-öffentlichen sind trotzdem innerhalb der Instanz. Und jetzt kommt eine Property, nämlich eine GetProperty, die ich einfach "Dauer" nenne und die den Datentyp "String" zurückgibt, weil ich diese Zeit die Differenzen einfach schon in schön formatiere. Das kann man sich alles noch zurecht programmieren, dass man die Zeit als echte Zeit zurückgibt und formatiert in verschiedenen Formaten oder sowas, ich will das hier aber einfach halten. Und die GetProperty ist hier ungefähr das, was einer Function entspricht, also schreibe ich hier gleich und dann kommt der Format-Befehl, der rechnet die Differenz aus der Endezeit minus der Anfangszeit und zwei in einem Format, welches zweistellige Stunde Doppelpunkt, zweistellige Minuten, Achtung wird mit "n", wie Nordpol abgekürzt, sonst haben Sie Monate und dann Doppelpukt, zeistellige Sekunden, Gänsefüßchen zu, Klammer zu. Das kann ich zwar schon mit "Debuggen""Kompilieren", testen, aber nicht wirklich hier ausführen, sondern dafür brauche ich jetzt erst eine Test-Prozedur, also mit "modTest" vielleicht mache ich besser sogar ein neues Modul, nämlich ein ganz normales, dann ist es ein bisschen übersichtlicher, also "modTesteStoppuhr" und da steht dann "sub TestFuerStoppuhrEinfach" zum Beispiel, kleines "t" da wäre sein und da muss ich das jetzt wieder deklarieren, also "Dim clsX" erstmal ganz lieblos, "As clsStoppuhr", dann muss ich sie initialisieren, "clsX=New clsStoppuhr" aber "Stoppuhr" muss man auch nehmen, so und jetzt kann ich die Stoppuhr laufen lassen. Punkt, die Prozedur, die ich jetzt aufrufe, ist "Start", dann mache ich irgendwas und ich mache mal ausdrücklich eine Messagebox, damit ich irgendwie Zeit verplempern kann, wenn ich das mal so formulieren darf, die kriegt dann "vbInformation" und da gibt es so eine Publickonstante, damit ich sehe, dass es keine Excel-Messagebox ist und danach kommt das "Stopp" und jetzt kann ich mir als zweites dann "debug.Print" anzeigen lassen, wie lange das gedauert hat, also auch da frage ich genau diese Klasse wieder, wie die Dauer war und da kommt ja ein String raus. Das muss ich natürlich mit Steuerung+G unten auch sichtbar machen, wie ein Direktnereich und jetzt vielleicht nochmal "Debuggen""Kompilieren", einmal F5 starten, da ist die MessageBox, die habe ich jetzt nur einfach, dass ich beliebig Zeit verwarten kann und wenn ich jetzt auf "OK" gehe, dann sehe ich hier unten, das hat offenbar 7 Sekunden gedauert. Diese Stoppuhr startet noch nicht mehrfach, aber grundsätzlich funktionsfähig ist sie schon.

Excel VBA für Profis: Klassen (Konzepte)

Verbessern Sie Ihren VBA-Code durch Klassenprogrammierung.

1 Std. 35 min (21 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!