A trick I have chosen to use is to create a class that accepts the character string you would use in the createObject call (i.e. "Excel.Application") as a parameter and try to call createObject. I put code in the error method of the class to return .f. on error. If it creates the object successfully, it releases it and returns .t. You could also choose to just return the object, but I prefer to keep the return type as logical and just grab the object again.
The code would look something like this in use:
if isRegistered("Excel.Application")
oExcel = createObject("Excel.Application")
endif
Paul A. Busbey
Victoria Insurance