GetObject() returns different types of instances

Y

Yi

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")
endi
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
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.ApplicationClass".

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,
 
J

Juan Pablo González

A short in the dark, what happens if you use

ExcelApp = New Excel.Application

?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top