Prozeduren und Parameter optimieren

Datenwerte zurückgeben: Datenwerte zurückgeben

∅ 2.7 / 3 Bewertungen

Datenwerte zurückgeben

Auf dieser Seite

Um in VBA einen Wert zu ermitteln, schreiben Sie vermutlich eine Funktion. Das ist nicht falsch, aber beileibe nicht die einzige Möglichkeit. Lassen Sie sich überraschen, auf wie vielen Wegen Sie Daten übergeben können.

Dabei geht es gar nicht um die Berechnung selbst, sondern um die Methode, so dass die Beispiele hier keine komplizierten Daten ermitteln. Die Standardversion einer Wert-Rückgabe wäre also eine Funktion wie im folgenden Listing:

Function Quadrat(dblZahl As Double) As Double
	Quadrat = dblZahl ^ 2
End Function

Sub TesteQuadrat()
	MsgBox Quadrat(5)
End Sub

Damit Sie diese überhaupt testen können, benötigen Sie die Prozedur TesteQuadrat() ohne Parameter, die sich mit F5 direkt starten lässt.

Aufruf einer Funktion

Ohne Testprozedur können Sie eine Funktion auch im Direkt-Fenster (welches mit Strg+G sichtbar wird) mit ? Quadrat(5) aufrufen, wenn Sie anschließend die Return-Taste drücken. Das Ergebnis erscheint dann in der Folgezeile.

Eine Funktion ist leider immer eine Einbahnstraße: Sie geben über die Parameter Daten hinein und erhalten einen einzigen Wert zurück.

Wenn Sie jedoch damit lesend und schreibend arbeiten möchten, brauchen Sie zwei unterschiedliche Prozeduren, etwa die Funktion intWert = HoleWert() und die Sub-Prozedur SetzeWert(intWert) wie im folgenden Listing:

Dim m_intAlter As Integer	'Modul-öffentliche Variable

Function HoleWert() As Integer
	HoleWert = m_intAlter
End Function

Sub SetzeWert(intWert As Integer)
	m_intAlter = intWert
End Sub

Das ist zwar technisch in Ordnung, macht den Code aber nicht besonders gut lesbar. Dabei zeigen VBA-eigene Eigenschaften, dass Sie mit demselben Namen offenbar doch gleichzeitig lesend und schreibend zugreifen können.