Microsoft Office Tutorials and References
In Depth Information
Eine Function-Prozedur sieht sehr ähnlich aus:
[Public | Private] Function Name [(ArgListe)] [As Typ]
[Anweisungen]
[Name = Ausdruck]
End Function
Eine Function-Prozedur kann eigentlich alles, was eine Sub-Prozedur auch kann. Sie hat
aber eine ganz entscheidende, zusätzliche Aufgabe, ihren Rückgabewert. Dieser Rück-
gabewert verhält sich so wie bei Excel-Funktionen und besitzt einen Datentyp, der
durch die Ergänzung [As Typ] angegeben werden kann (aber nicht muss). Wird er nicht
angegeben, verwendet VBA den Datentyp Variant . Der Function wird ihr Rückgabewert
aber nicht von Geisterhand zugeflüstert, sondern Sie müssen ihn ihr zuweisen. Mit
[Name = Ausdruck]
geschieht dies. Diese Zuweisung muss mit den übrigen Anweisungen der Function
nichts zu tun haben. Auch wenn sie ganz weggelassen wird, wird alles andere trotz-
dem anstandslos ausgeführt. Nur der Function fehlt dann eben ihr Rückgabewert.
Ein Beispiel:
Sub Aufruf()
MsgBox WochentagHeute
End Sub
Private Function WochentagHeute() As String
WochentagHeute = Format(Date, "dddd")
Range("A1").Value = "Morgen ist " & Format(Date + 1, "dddd")
End Function
Die Sub-Prozedur ruft die Function auf. Innerhalb der Function finden zwei vonein-
ander völlig unabhängige Vorgänge statt. Die Function erhält als Rückgabewert den
heutigen Wochentag. Die zweite Anweisung schreibt einen anderen Text in die Zelle
A1. Das hätte genauso gut eine Sub-Prozedur machen können. Schließlich gibt die
Sub Aufruf in der Messagebox den Rückgabewert der Function aus.
Sehr wichtig zu wissen ist natürlich auch, wie Prozeduren aufgerufen bzw. ausge-
führt und wie dabei Argumente übergeben werden. Solange wir uns in der Testphase
befinden, helfen uns folgende Tasten
(F5) – führt ein Makro vollständig aus.
(F8) – führt ein Makro schrittweise aus.
(F9) – setzt einen Haltepunkt in der aktiven Makrozeile.
Search JabSto ::




Custom Search