Lo puoi fare o con una funzione iterativa, oppure una ricorsiva.

codice:
Private Sub FattorialeIterativo(N As Long)
    Dim F As Long
    F = 1
    Do While N > 0
        F = F * N
        N = N - 1
    Loop
    MsgBox "Il fattoriale del numero (metodo iterativo) è: " & F
End Sub


Private Function FattorialeRicorsivo(N As Long) As Long
    If N = 0 Then
        FattorialeRicorsivo = 1
    ElseIf N = 1 Then
        FattorialeRicorsivo = N
    Else
        FattorialeRicorsivo = N * FattorialeRicorsivo(N - 1)
    End If
End Function