Can a macro call itself

macros are usually reentrant, how do I call a macro programatically?

Here’s an example function that calls itself – it’s recursive.

Function factorial (n As Integer) As Double
    If n < 0 Then
        Print "Error!"
        Stop
    ElseIf n < 2 Then
        factorial = 1
    Else
        factorial = n * factorial(n - 1)
    End If
End Function