View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Juan Pablo González Juan Pablo González is offline
external usenet poster
 
Posts: 226
Default GetObject() returns different types of instances

A short in the dark, what happens if you use

ExcelApp = New Excel.Application

?

--
Regards

Juan Pablo González

"Yi" wrote in message
...
Hi,

I am puzzled by my VB.NET application behavior. In the following code:

'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''
''''''''''''''''''''''''''''
dim ExcelApp as Excel.Application
ExcelApp = GetObject(Nothing, "Excel.Application")
if (ExcelApp is nothing) then
ExcelApp = CreateObject("Excel.Application")
endif

'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''
''''''''''''''''''''''''''''
if there is an Excel process running before running this code, the

variable
"ExcelApp" will refer to an instance of type "System.__ComObject". But if
Excel process is not present before running this code, this variable will
point to an instance of "Microsoft.Office.Interop.Excel.ApplicationCla ss".

If "ExcelApp" is pointing to "System.__ComObject", the code
"ExcelApp.Workbooks.Add()" will succeed. But if it is pointing to the

other
type, this code will throw an exception which says "Object reference not

set
to an instance of an object". Can anybody give some advices? Many thanks

in
advance.

Regards,

--
Yi Chu