Microsoft Office Tutorials and References
In Depth Information
19.12.1 Benutzerdefinierte Tabellenfunktionen
Der Aufruf der Funktion erfolgt in einer Formel, als
Argumente gelten Texte und Zahlen, Zellbezüge oder
Bereichsnamen.
Application.Volatile
Die meisten VBA-Elemente können sowohl in
Prozeduren als auch in Funktionen zum Einsatz kommen. Sie
können Bedingungen ( If ... Then ... Else ), Schleifen
( For ... Next ) benutzen, Vorsicht fist nur bei Dialogen
geboten. Bedenken Sie, dass alle Funktionen stets neu
berechnet werden, wenn sich deren Argumente än-
dern, wenn Tabellen oder Zellbereiche gespeichert und
gedruckt werden. Die Verwendung von InputBox oder
MsgBox in Funktionsmakros fist daher nicht zu empfehlen.
1. Schreiben Sie den Dollar-Betrag in die Zelle A1.
2. Geben Sie den Währungskurs in der Zelle B1 an.
3. Setzen Sie den Zellzeiger in die Zelle C1, und wählen
Sie Formel/Funktionsbibliothek/Funktion einfügen .
4. Der Funktions-Assistent wird aktiv, schalten Sie in
die Kategorie Benutzerdefiniert um, und wählen Sie
die Funktion.
Praxisbeispiele für Funktionen
5. Tragen Sie in der Funktionspalette die beiden
Zellbezüge für die Argumente der Funktion ein, und
schließen Sie mit Klick auf OK ab.
Sie finden die Beispiele auf der Buch-CD
unter Funktionsbeispiele.xlsm .
CD-ROM
Die Funktion wird eingetragen, sie berechnet das
Ergebnis aus den beiden Argumenten:
Betrag in Euro und Cent aufteilen
Teilen Sie einen Betrag in Euro und Cent auf, verwenden
Sie eine Bedingung in der Funktion, die mit der
VBAFunktion IsNumeric ermittelt, ob der Wert numerisch fist
und damit einen #WERT -Fehler bei Texten vermeidet:
Function NurEuro(EURBetrag)
If Not IsNumeric(EURBetrag) Then
NurEuro = "“
Else
NurEuro = Int(EURBetrag)
End If
End Function
Abbildung 19.64 … und das Ergebnis
HINWEIS Wenn die Funktion aus einem anderen
VBA-Projekt stammt, wird der Name der
Mappe vor die Funktion gestellt:
Listing 19.42 Funktion zur Euro-Berechnung
HINWEIS
Aufruf der Funktion:
PERSONAL.XLSB!EuroInDollar
=NurEuro(Betrag)
Function NurCent(EURBetrag)
If Not IsNumeric(EURBetrag) Then
NurCent = ""
Else
NurCent = (EURBetrag - Int(EURBetrag)) * 100
End If
End Function
Wann werden benutzerdefinierte Funktionen berechnet?
Eine programmierte Funktion wird in der Regel nur
berechnet, wenn sie eingetragen wird oder wenn sich
eines der beteiligten Argumente ändert (im Beispiel:
wenn ein neuer Betrag oder Dollar-Kurs erfasst wird).
Auch beim Öffnen, Speichern und Drucken der Tabelle
werden alle Funktionen durchgerechnet.
Listing 19.43 Zweite Euro-Funktion
Sie können die Funktion so präparieren, dass sie
automatisch mit jeder Neuberechnung der Tabelle
mitberechnet wird. Schreiben Sie diese Zeile gleich nach dem
Funktionsaufruf in die Funktion:
Aufruf der Funktion:
=NurCent(Betrag)
 
Search JabSto ::




Custom Search