Hi. Not sure if this will help but have you tried using an Input Mask?
I had a quick go. Not sure what input mask I should have but I tried with 99999.99 but it looks like he then has to put in 00012.12 for example which will soon get on his nerves. It also displays that as something like _____.__ which looks naff. I think I can change that display but not explored it deeply enough to get over the main problem of leading zeros.
I suppose i could stick in some event that tests to see if there are more than 2 decimal digits but I've go this all over the place and want access to pull it's weight!
EDIT
OK it's not as bad as I thought. Leading zeros aren't required but if user inputs 1.22 it's initiall display as 1____.22 which when tabbed reverts to 1.22. so if I can replace _ with a space I'm laughing!
EDIT 2
OK so you can put something like this
#9999.99;1; :
which more or less works but not quite as ms office support pages suggest.
The # can be -, +, or a space.
It says 9 has to be a digit, but the user can actually enter a space which then produces an error if it's between digits, i.e 12 3.45. If the space is entered before any digits it works ok but you shouldn't be able to anyway.
The 1 after the first ; indicates that the mask is not stored with the data. A 0 says it is but no idea why you'd want to????
The space between the second ; and the : is the default displayed character, in my case a space!
So how can I prevent them sticking in a space with the above mask. Oh and if they enter a space right at the beginning where the # is then they can't put a '-' in the second position. If I change the mask to ######.99 tyhen they can out all sorts of weird stuff in 1 2+3-.55 for example.