Define Excel Addin programatically

S

samdesilva

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
 
B

Bill Barclift

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
 

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