Many programmers don’t realize that it is perfectly legal to use the name of a function inside the Function itself, as if it were a local variable. This trick often lets you avoid the declaration of a temporary variable, and sometimes can speed up the code. Take for example the following code:
Function Max(arr() As Long) As Long Dim res As Long, i As Long res = arr(LBound(arr)) For i = LBound(arr) + 1 To UBound(arr) If arr(i) > res Then res = arr(i) Next Max = resEnd Function
You can make it more concise by getting rid of the res variable:
Function Max(arr() As Long) As Long Dim i As Long Max = arr(LBound(arr)) For i = LBound(arr) + 1 To UBound(arr) If arr(i) > Max Then Max = arr(i) NextEnd Function
You can even pass the function name by reference to another routine, or as an argument of an API function.