That's odd. Both functions kept the leading zeros for me. (xl2003)
That's when I called it from a worksheet cell:
=reverse(a1)
or
=reverse2(a1)
But if I called it from a sub and populated another cell, I lost the leading
0's.
Sub testme()
Range("B1").Value = Reverse(Range("a1"))
End Sub
But you could do this:
Sub testme2()
Range("B1").Value = "'" & Reverse(Range("a1"))
End Sub
or even:
Sub testme3()
With Range("B1")
.NumberFormat = "@"
.Value = Reverse(Range("a1"))
End With
End Sub