Elziko -
What the workaround is that Microsoft describes is a "cheat" for C/C++ programmers.
What happens during the problem is the API call truncates the file path at the first space it encounters, replacing the space with a hex &H0 character. Their workaround says that if you suspect/know that the path should be longer, you can change that position back to a space, which (might) reveal the rest of the path. This might be possible in VB, but it's really dangerous. If you change the null character to a space when you're _not_ supposed to, then when you access the string you may or may not get an access violation, depending on how long it takes VB to find a terminating null character (&h0). Since this terminating null may or may not be in your memory space, you'll get variable results.
Here's a suggestion:
Instead of using the FindExecutable API call, do some registry queries yourself.
Look up the default value under HKEYROOT for ".xls". On my system this says "Excel.Sheet.8".
Now look up "Excel.Sheet.8" under HKEYROOT, and look at the shell\Open\command key under it. The default value on my system says:
[tab]"C:\Program Files\Microsoft Office\Office\EXCEL.EXE" /e
Strip the option off the end (if any), and you should have the path.
Chip H.