HINWEIS
HINWEIS
BEISPIEL
BEISPIEL
Kapitel 2: Programmieren mit VBA
Bevor Sie sich aber in die Arbeit stürzen, sollten Sie sich sorgfältig überlegen, ob sich die ganze Sache auch
wirklich lohnt, denn jeder Aufruf einer Funktion/Prozedur bringt eine Zeiteinbuße gegenüber der direkten Programmierung mit
sich. So kann es mitunter günstiger sein, den Code doppelt in die entsprechenden Event-Handler zu schreiben, als ihn in eine
Funktion/Prozedur auszulagern, wenn diese nur zweimal aufgerufen wird.
Funktion oder Prozedur? Diese Entscheidung bleibt Ihnen überlassen, da prinzipiell beide Wege gangbar
sind
1
. Falls Sie nur an einem einzigen Rückgabeparameter interessiert sind, sollten Sie einer Funktion
(Function) den Vorzug geben, ansonsten verwenden Sie eine Prozedur (Sub).
Funktion
Der Rückgabewert einer Funktion entspricht einem bestimmten Datentyp, der bei der Deklaration mit
anzugeben ist. Fehlt eine Typangabe, so wird standardmäßig Variant angenommen.
Innerhalb einer Funktion muss deren Name zugewiesen werden!
Berechnung des Nettowertes aus Brutto und Mehrwertsteuer.
Dim geld As Currency
Private Function netto(brutto As Currency, mwst As Single) As Currency
netto = brutto / (1 + mwst) ' Funktionsname wird zugewiesen
End Function
Der Funktionsaufruf:
geld = netto(10, 0.16) ' geld = 8,62
Prozedur
Eine Prozedur (oft auch nur Sub genannt) ist quasi ein Unterprogramm, was »irgendetwas« erledigt. Der
Aufruf ist mit oder ohne Call möglich.
Das gleiche Problem wie im Vorgängerbeispiel wird mit einer
Sub
gelöst.
Dim geld As Currency
...
Private Sub netto(brutto As Currency, mwst As Single)
geld = brutto / (1 + mwst)
End Sub
Der Prozeduraufruf:
Call netto(10, 0.16) ' geld = 8,62
1
In der Programmiersprache C haben Sie diese Qual der Wahl nicht, da es dort nur Funktionen gibt.
114

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.