Datenwerte zurückgeben
Datenwerte zurückgeben
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 mit ? Quadrat(5) aufrufen, wenn Sie anschließend die Return-Taste drücken. Das Ergebnis erscheint 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.
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: Prozeduren und Parameter optimieren 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