I have a list of IP numbers in the Long format, and this function is supposed to convert them to the string format (x.x.x.x)

However the function only converts up to certain value, so is not entirely working. Any help will be really appreciated, this is an urgent project.

Code:
' Inputs: IP Address as a Long Number (no dots)
' Returns: Returns the string representation of an IP Address ("192.168.0.1")

    Function CStrIP(ByVal anNewIP As Long) As String
        Dim lsResults        ' Results To be returned
        Dim lnTemp            ' Temporary value being parsed
        Dim lnIndex            ' Position of number being parsed
        ' If pulling number from an Access Database,
        ' The variable Type "Long" ranges from -2147483648 To 2147483647
        ' You will first need To add 2147483648 to the number to parse correctly.
        ' anNewIP = anNewIP + 2147483648
        ' Parse highest numbers first
        For lnIndex = 3 To 0 Step -1
        
            ' Parse the current value For this position
            lnTemp = Int(anNewIP / (256 ^ lnIndex))
            
            ' Append the number To the final results delimited by a dot
            lsResults = lsResults & lnTemp & "."
            
            ' Remove the number that we just parsed
            anNewIP = anNewIP - (lnTemp * (256 ^ lnIndex))
            
        Next
        
        ' Cut off last dot
        lsResults = Left(lsResults, Len(lsResults) - 1)
        
        ' Return the results
        CStrIP = lsResults
        
    End Function