I have had pretty good success constructing a string that looks like what I would insert manually into an Excel cell when I want to retain leading zeros. For example, if the value is 00055 and you stuff that into an xl Cell, you will certainly get 55. If you stuff 00055 into a string and stuff that into an xl cell, you will often still get 55. However if your string is ="00055" which is how you would do it manually, that seems to work. In the examples below, 55, "00055" and the special string text are stuffed into 3 different cells:

Cells(34, 4) = 55
Cells(36, 4) = "00055"
Cells(36, 4) = "=" + Chr(34) + "00055" + Chr(34)

The first two cells display 55, the last cell displays 00055.

Not very elegant, but it works.