VBA-Programmierung mit Klassen

Von: Lorenz Hölscher
Stand: 11. April 2011
4
(1)
Beitrag bewerten
Anmelden um Kommentare zu schreiben

Eine erste Klasse erstellen

Eine erste Mini-Klasse

Nachdem Sie im VBA-Editor das Menü Einfügen/Klassenmodul aufgerufen haben, wählen Sie in dieser Klasse1 aus der oberen linken DropDown-Liste Class und aus der rechten die beiden Prozeduren Initialize und Terminate.

Bild vergrößernDie Auswahl der Klassen-Ereignisse

Sie erhalten damit die beiden benötigten Prozedur-Rümpfe. Ergänzen Sie den Code:

Option Explicit

Const m_cstrModulName = "Klasse1"

Private Sub Class_Initialize()
	MsgBox "Da bin ich!", vbExclamation, m_cstrModulName
End Sub

Private Sub Class_Terminate()
	MsgBox "...und tschüß!", vbExclamation, m_cstrModulName
End Sub

Sub SagHallo()
	MsgBox "Hallo, ich heiße '" & m_cstrModulName & "'.", vbExclamation, m_cstrModulName
End Sub

Function MeinName() As String
	MeinName = m_cstrModulName
End Function

Dabei ist der Modulname der Einfachheit halber in einer Modul-öffentlichen Variablen gespeichert, damit er bei Bedarf zentral geändert werden kann. Solche Variablen werden entsprechend der Ungarischen Notation mit m_... am Anfang gekennzeichnet, damit sie von lokalen oder Datei-öffentlichen (mit Präfix p_... für Public) Variablen unterschieden werden können.

Legen Sie nun ein normales Modul modTest an und rufen Sie diese Klasse auf. Das geschieht ähnlich wie bei einer Variablen durch die Dim-Anweisung, allerdings steht hier vor dem Datentyp Klasse1 (nämlich dem Namen, unter dem das Klassenmodul gespeichert ist) das Schlüsselwort New:

Sub AufrufEinerKlasseEinfach()
	Dim Test As New Klasse1

	Test.SagHallo
End Sub

Die Meldungen beweisen, dass der Zugriff auf die Klasse funktioniert.Die Meldungen beweisen, dass der Zugriff auf die Klasse funktioniert.

Die wesentliche Neuigkeit gegenüber normalen Variablen ist das Schlüsselwort New. Es weist Windows an, eine Kopie des Klassenmoduls im Speicher anzulegen. Erst mit dieser Kopie kann Ihr Code arbeiten. Die von Ihnen programmierte Klasse ist sozusagen der Stempel, von dem Ihr Code beliebig viele Stempelabdrücke anlegen kann. Jeder Stempelabdruck ist autark, er "weiß" also nichts von den anderen.

Nach dem "Stempeln" mit New können Sie alle öffentlichen Prozeduren, Funktionen oder Properties dieser Klasse benutzen, wenn Sie die jeweils deklarierte Variable (hier also Test) voranstellen.

Dies ist eine Leseprobe

Möchten Sie den Beitrag komplett lesen? Dann werden Sie Probemitglied und testen Sie akademie.de 14 Tage kostenlos!

Auf VBA-Programmierung mit Klassen erfahren Sie mehr über diesen Beitrag und die weiteren Leseproben.

Weitere Informationen finden Sie auf unserer Infoseite zur Mitgliedschaft und in unseren AGB.

Ich bin bereits Mitglied
Jetzt Probemitglied werden
Ich kann in den 14 Tagen Probezeit formlos z.B. per E-Mail stornieren. Wenn ich das nicht tue, entscheide ich mich für ein