This code throws an overflow exception when the code tries to assign a value of 40,000 to num2. However, num2 is a Long so it should be able to handle a 32 bit unsigned integer value. It is behaving as if it was an Integer data type (16 bit unsigned max 32,767).

    Dim digit1 As Integer
    Dim digit2 As Integer
    Dim digit3 As Integer
    Dim digit4 As Integer
    Dim digit5 As Integer
    Dim num1 As Long
    Dim num2 As Long

    For digit1 = 0 To 9
        For digit2 = 0 To 9
            For digit3 = 0 To 9
                For digit4 = 0 To 9
                    For digit5 = 0 To 9
                        num1 = 10000 * digit1 + 1000 * digit2 + 100 * digit3 + 10 * digit4 + digit5
                        num2 = 10000 * digit5 + 1000 * digit1 + 100 * digit2 + 10 * digit3 + digit4
                        Debug.Print (num2)
                        If num2 = 2 * num1 Then
                            'MsgBox (num1)
                            Debug.Print (num1)
                        End If
                    Next
                Next
            Next
        Next
    Next