Are you using the same 32-bit or 64-bit architectures for both 5 and 7 and is your Excel 32 or 64 bit?
Most of the problems with com objects that I have seen were due to a bit-ness issues.
AFAIK Linqpad uses the standard way to detect excel which is by calling System.Type.GetTypeFromProgID("Excel.Application") which will return null if excel is not found.
Comments
Are you using the same 32-bit or 64-bit architectures for both 5 and 7 and is your Excel 32 or 64 bit?
Most of the problems with com objects that I have seen were due to a bit-ness issues.
AFAIK Linqpad uses the standard way to detect excel which is by calling
System.Type.GetTypeFromProgID("Excel.Application")
which will return null if excel is not found.