The code you posted merely involves a lot of circumlocution to achieve the same result as:
Code:
ActiveDocument.ConvertNumbersToText (wdNumberAllNumbers)
Moreover, your use of:
merely slows the code down (especially given that you never actually do anything with the resulting Selection) and, combined with the lack of:
Code:
Application.ScreenUpdating = False
results in a lot of screen flicker.
At the very most, all you need is:
Code:
Public Sub Flatten()
With ActiveDocument
.ConvertNumbersToText (wdNumberAllNumbers)
.Range.Style = wdStyleNormal
End With
End Sub