Prozeduren und Parameter optimieren
Datenwerte zurückgeben: Datenwerte zurückgeben
Datenwerte zurückgeben
Auf dieser Seite
Mit Bild
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.
Mit Bild
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:
Mit Bild
Function Quadrat(dblZahl As Double) As Double Quadrat = dblZahl ^ 2 End Function Sub TesteQuadrat() MsgBox Quadrat(5) End Sub
Mit Bild
Damit Sie diese überhaupt testen können, benötigen Sie die Prozedur TesteQuadrat() ohne Parameter, die sich mit F5 direkt starten lässt.
Mit Bild
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.
Mit Bild
Eine Funktion ist leider immer eine Einbahnstraße: Sie geben über die Parameter Daten hinein und erhalten einen einzigen Wert zurück.
Mit Bild
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:
Mit Bild
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
Mit Bild
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.