¿Por qué 0 dividido por 0 arroja un error de desbordamiento en VBA?

Por que es0/0 lanzamientoOverflow error en VBA, mientras que en idiomas .Net es simplemente unDivision by 0 ¿error?

Por ejemplo, enC# es unSystem.DivideByZeroException

static void Main()
{
    int k = 0;
    int p = 0;
    Console.WriteLine(k/p);
}

Div/0 error existe enVBA. Pero 0/0 da unexcepción de desbordamiento, mientras que cualquier otra cosa dividida por 0 da unDiv/0 excepción:

Public Sub TestMe()

    'Integer
    PrintAndCheck (11)      '- Division by zero error

    'Double
    PrintAndCheck (0.9)     '- Division by zero error

    'Long
    PrintAndCheck (50000)   '- Division by zero error

    'String
    PrintAndCheck ("1.1")   '- Division by zero error

    '----------------------------------------------------
    '----------------BUT---------------------------------
    '----------------------------------------------------

    'Integer
    PrintAndCheck (0)       '- Overflow?

End Sub

Public Sub PrintAndCheck(lngDivisor As Variant)

    On Error Resume Next

    Debug.Print lngDivisor / 0
    Debug.Print Err.Description & " from type -> " & VarType(lngDivisor)

    On Error GoTo 0

End Sub

Eso es lo que obtienes en la ventana inmediata:

Division by zero from type -> 2
Division by zero from type -> 5
Division by zero from type -> 3
Division by zero from type -> 8
Overflow from type -> 2
Editar: Para hacer toda la historia más interesante:
Public Sub TestMe()
    On Error Resume Next
    Debug.Print Evaluate("0/0")     'Division by 0 error (CVErr(xlErrDiv0)=2007)
    Debug.Print 0 \ 0               'Division by 0 error
    Debug.Print Err.Description
    On Error GoTo 0
End Sub

Respuestas a la pregunta(2)

Su respuesta a la pregunta