Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
Was bedeutet eigentlich das Schlüsselwort “static”, mit dem Sie sowohl Typen/Klassen also auch die Elemente einer Klasse wie Methoden oder Eigenschaften kennzeichnen können – und was ist bei der Erstellung und Nutzung von Typen und Elementen mit diesem Schlüsselwort zu beachten Dies schauen wir uns im vorliegenden Artikel an und liefern einige Beispiele, welche die Regeln verdeutlichen.
Statische Klassen unter VBA
Unter VBA waren schon einige Verrenkungen nötig, wenn Sie auf die Methoden oder Eigenschaften einer Klasse zugreifen wollten, ohne diese Klasse selbst zu instanzieren – also beispielsweise so:
Dim objTest As clsTest Set objTest = New clsTest objTest.Beispielmethode
Mit ein paar Tricks konnten Sie eine Klasse mit einer zusätzlichen, im VBA-Editor nicht sichtbaren Eigenschaft ausstatten, die es ermöglichte, direkt auf ihre Methoden zuzugreifen. Das sah dann schlicht so aus:
clsTest.Beispielmethode
Der Trick ist, die Klasse per SaveAsText zu exportieren und dann den Wert des Attributs VB_PredeclaredId in einem Texteditor auf True einzustellen:
Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Option Compare Database Option Explicit Public Sub Beispielmethode() MsgBox "Beispielmethode" End Sub
Danach konnten Sie in VBA einfach den Namen der Klasse gefolgt von einem Punkt angeben, um per IntelliSense die Member der Klasse einzublenden (siehe Bild 1). Sie konnten die Klasse aber weiterhin instanzieren und wie eine herkömmliche Klasse per Objektverweis nutzen.
Bild 1: “Statische” Klassen unter VBA
Zum Glück waren die beschriebenen Schritte nur notwending, wenn Sie die gewünschte Funktion tatsächlich im Kontext einer Klasse benötigten – also etwa, um Eigenschaften einzugeben und dann eine oder mehrere Methoden aufzurufen. Für den direkten Aufruf einer Methode (beziehungsweise Prozedur, wie es unter VBA heißt) gibt es ja zum Glück das gute, alte Standardmodul.
Statische Klassen unter C#
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
Testzugang
eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel
diesen und alle anderen Artikel mit dem Jahresabo