miniversum
Goto Top

Aufrufende Funktion oder sub ermitteln

Kann man herausfinden welche Funktion oder Sub die aktuelle Sub aufgerufen hat?
Alternativ der Name der aktuellen Funktion oder Sub.

Hallo
Ich schreibe gerade eine etwas größere Anwendung in VBA in Excel 2003.
Um Fehler abzufangen habe ich eine Sub "ErrorFunction" die dann im Fehlerfall alles weitere verarbeitet.
Diese Sub rufe ich dann in den Einzelnen Funktionen und Subs im Fehlerfall auf.

Nun sollte in dieser "ErrorFunction" auch eine Meldung ausgegeben werden mit der Art des Fehlers (Err.Description). Außerdem würd ich gerne wissen wo der Fehler entstanden ist. Bisher mache ich das so das ich beim Aufruf der Name der aufrufenden Funktion übergebe, Also so:
Call ErrorFunction("Funktion1")
und in meiner "ErrorFunction" diesen Parameter dann eben mit in die Meldung einbaue.
Nun ist es allerdings recht aufwendig bei jeder Funktion und Sub die die "ErrorFunction" auslöst den Namen anzugeben, da das sehr viele sind und ich doch gerne einen einheitlichen Aufruf hätte. Daher hab ich mich gefragt ob es nicht möglich ist den Namen der aufrufenden Funktion oder Sub direkt in "ErrorFunction" zu ermitteln.
Err.Source liefert mir leider nur den Projektnamen. An den Funktionsnamen allerdings scheint mit VBA mitteln nicht so leicht heranzukommen.

Alternativ habe ich auch schon vesuche den Namen der aktuellen Funktion zu ermitteln und diesen dann an die "ErrorFunction" zu übergeben, statt eines statischen Stings, wie im Beispiel oben das "Funktion1".

Hat hier jemand eine Idee wie das doch gehen könnte? Vielleicht über eine api Funktion oder Abfrage des Stacks oder so?

miniversum

Content-Key: 127069

Url: https://administrator.de/contentid/127069

Ausgedruckt am: 28.03.2024 um 20:03 Uhr