Czy mozliwe jest takie przedefiniowanie gotowej funkcji VBA np. Trim, zeby robila ona to co robi plus wyswietlala dodatkowo np. Komunikat „Uruchomiono funkcje TRIM”.
Jaki REALNY problem chcesz załątwić?
Postaw breakpoint.
Potrzebuje wykonac dodatkowy kod za kazdym razem wywolania TRIM.
A da się tam funkcje robić? RObisz funkcje opakowującą TRIM, np MY_TRIM. i zamiast wywoływać TRIM wywołujesz MY_TRIM
@KamilAdam: Tak to jest pomysł, ale mi zależy żeby nie zmieniać nic w kodzie programu i aby sprytnie wywoływać dodatkowy kod do funkcji oryginalnej.
sprytnie wywoływać dodatkowy kod do funkcji oryginalnej.
W Javie na takie sprytne programowanie mówimy aspekty, ale po 10+ latach istnienia aspektów ludzie się zorientowali że to jest zbyt magiczne
W pełnym .NET Frameworku są środki na ten pomysł, ale kolega pyta na na obszarze Visual Basic f Applications (czyli z wnętrza Excella, Worda)
Ja wiem co to VBA (chociaż nie patrzyłem na to od 15 lat). I już zguglałem że VBA nie ma AOP. Nie wiem co mógłbym poradzić oprócz zmiany pomysłu
A co za problem?
Wstawiasz w moduł kod:
Public Function Trim(ByVal s As String) As String
' tu coś zrób
Trim = VBA.Strings.Trim(s)
' albo tu
End Function
i gotowe :)
@Marcin.Miga: Super, to działa! O to chodziło. Dzięki.