View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Bill Barclift Bill Barclift is offline
external usenet poster
 
Posts: 23
Default Define Excel Addin programatically

Not exactly what you are asking for, but do you have a compelling reason to
use C# for this? I would personally create any add-in for Excel in VB6, for
the time being. C# is a pain in the #$#$ with com.....I would shy away
unless necessary. Aside from cross-process marshelling, it is plain flat
not convenient to use com objects in C#. Just my 2cents!

Bill Barclift

"samdesilva" wrote in message
...
Hi,
I am using C# to use Excel COM object to add and set up an add-in.
Here, I am using Late Binding concept. Following code allows me to just
open Excel from my program (just to prove it works).

object ExelAppObject;
ExcelAppType = Type.GetTypeFromProgID("Excel.Application");
ExelAppObject = Activator.CreateInstance(ExcelAppType);
objArray = new object[] {true};
retObj = ExcelAppType.InvokeMember("Visible",
BindingFlags.SetProperty,
null,
ExelAppObject ,
objArray);

Now, I want to setup the addin. So get the AddIns object collection
with following:

object addIns = ExcelAppType.InvokeMember("AddIns",
BindingFlags.GetProperty,
null,
ExelAppObject,
null);

At this point, I get the COM object returns to my code and now I try to
add the Add-In.

objArray = new object[] {xllPath};
object addIn = addIns.GetType().InvokeMember("Add",

BindingFlags.InvokeMethod,
null,
addIns,
objArray);

Where xllPath is the file name with the path. This throws an error
saying that remote object got an exception.

Anybody has an idea how to do this? Anyway, the Early Binding is not a
solution due to the version problem.

Many thanks

SAM



------------------------------------------------
~~ Message posted from http://www.ExcelTip.com/
~~ View and post usenet messages directly from http://www.ExcelForum.com/