VBA - REKURSIVE PROGRAMMIERUNG  

' Rekursions-Beispiele
Option Explicit

' den Aufruf einer rekursiven Prozedur testen
Public Sub TestFakultaet()
Debug.Print Fakultaet(5)
End Sub

' rekursive Prozedur zur Berechnung der Fakultät von x
Function Fakultaet(x)
If x <= 1 Then
    Fakultaet = 1
Else
    Fakultaet = x * Fakultaet(x - 1)
End If
'Fakultaet = IIf(x <= 1, 1, x * Fakultaet(x - 1)) ' funktioniert nicht
End Function

Public Function FLAECHE_GESAMT_REKURSIV(Typ As String, HOEHE, BREITE, LAENGE As Single) As Single
Typ =ucase(Typ ) ' Großschreibung forcieren

Select Case Typ
    Case "WAND", "WÄNDE"
        FLAECHE_GESAMT_REKURSIV = (HOEHE * (BREITE + LAENGE) * 2)
    Case "BODEN", "FUSSBODEN", "FUßBODEN", "DECKE"
        FLAECHE_GESAMT_REKURSIV = BREITE * LAENGE
    Case "GESAMT"
        FLAECHE_GESAMT_REKURSIV = _
            FLAECHE_GESAMT_REKURSIV("BODEN", HOEHE, BREITE, LAENGE) * 2 + _
            FLAECHE_GESAMT_REKURSIV("WAND", HOEHE, BREITE, LAENGE)
End Select
End Function