Prozeduren und Parameter optimieren
Datenwerte zurückgeben: Properties statt Funktionen
Properties statt Funktionen
Auf dieser Seite
Mit Bild
Dazu brauchen Sie ein Property-Paar. Normalerweise besteht das Paar aus Let/Get, nur bei der Zuweisung von Objektvariablen muss es Set/Get heißen. Durch diesen Zusatz darf die Property wie im folgenden Listing namensgleich sein, denn der Compiler kann den lesenden und den schreibenden Zugriff auseinanderhalten.
Mit Bild
Dim m_intAlter As Integer Public Property Get Alter() As Integer Alter = m_intAlter End Property Public Property Let Alter(ByVal intWert As Integer) m_intAlter = intWert End Property Sub TesteAlter() Alter = 99 'neuen Inhalt zuweisen MsgBox "Alter: " & Alter 'jetzt ist 99 enthalten End Sub
Mit Bild
Ansonsten hat sich gegenüber dem Einsatz von Function und Sub aus dem vorigen Listing eigentlich nichts geändert, außer dass jetzt Anzahl und Typ der Parameter dieses Property-Pärchens zueinander passen müssen.
Mit Bild
Daher ist es durchaus bequem, die beiden minimalen Prozedur-Rümpfe für Property Let und Property Get über das Menü Einfügen/Prozedur und den folgenden Dialog erstellen zu lassen.
Mit Bild
Einfügen einer neuen Property
Mit Bild
Dann erhalten Sie den im folgenden Listing gezeigten Code, der ziemlich standardisiert ohne zusätzliche Argumente und immer nur für das Let/Get-Paar erstellt wird.
Mit Bild
Public Property Get DocEigenschaft() As Variant End Property Public Property Let DocEigenschaft(ByVal vNewValue As Variant) End Property
Mit Bild
Sowohl für Set/Get als auch weitere Argumente müssen Sie diese Code-Fragmente nachträglich ergänzen. Dabei können Sie identische Parameter hinzufügen, wobei die Property Let den hier vNewValue genannten Parameter immer am Ende zusätzlich hat. Dieser Parameter darf einen beliebigen Namen und Datentyp (aber immer passend zum Datentyp der Get-Property!) erhalten.
Der Aufruf dieser beiden noch funktionslosen Properties liest sich dann so:
Mit Bild
Sub TesteProp() DocEigenschaft = "Test" MsgBox "Aktueller Wert: " & DocEigenschaft End Sub
Mit Bild
Da es aber verschiedene Dokument-Eigenschaften gibt, benötigen Sie noch einen zusätzlichen Parameter für den Eigenschafts-Namen, damit es brauchbar funktioniert.