Retrieving Current Excel Instance from Automation Add-IN

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I have created an Automation Addin with the following code.

[ClassInterface(ClassInterfaceType.AutoDual)]
public class TestFunctions
{
private ApplicationClass excelApplication;

public TestFunctions()
{
// this.excelApplication = SOMETHING
}

[ComRegisterFunctionAttribute]
public static void RegisterFunction(Type type)
{
Registry.ClassesRoot.CreateSubKey(GetSubKeyName(type));
}

[ComUnregisterFunctionAttribute]
public static void UnregisterFunction(Type type)
{
Registry.ClassesRoot.DeleteSubKey(GetSubKeyName(type),false);
}

private static string GetSubKeyName(Type type)
{
string s = @"CLSID\{" + type.GUID.ToString().ToUpper() + @"}\Programmable";
return s;
}

Using the code above I want to grab the instance of Excel THAT THE ADD_IN is
RUNNING in. I tried this.excelAppication = new ApplicationClass(), but that
just creates a new excel instance.

Any suggestions would be very helpful.

Thank you,

mduncan
 
If its a vs office addin project:
the boiler plate code should include an
object called applicationObject, you should be able to reference that (its
private within the connect class so you'll have to make it public/global or
put an accessor routine in)
applicationObject is set on connection

if its a vs office project:
The boiler plate code should include an
Excel.Application called ThisApplication, you should be able to reference
that directly?
(I'm using VS.net 2003)

cheers
simon
 
Thank you. The on connection solution works perfectly!

Simon Murphy said:
If its a vs office addin project:
the boiler plate code should include an
object called applicationObject, you should be able to reference that (its
private within the connect class so you'll have to make it public/global or
put an accessor routine in)
applicationObject is set on connection

if its a vs office project:
The boiler plate code should include an
Excel.Application called ThisApplication, you should be able to reference
that directly?
(I'm using VS.net 2003)

cheers
simon

mduncan said:
I have created an Automation Addin with the following code.

[ClassInterface(ClassInterfaceType.AutoDual)]
public class TestFunctions
{
private ApplicationClass excelApplication;

public TestFunctions()
{
// this.excelApplication = SOMETHING
}

[ComRegisterFunctionAttribute]
public static void RegisterFunction(Type type)
{
Registry.ClassesRoot.CreateSubKey(GetSubKeyName(type));
}

[ComUnregisterFunctionAttribute]
public static void UnregisterFunction(Type type)
{
Registry.ClassesRoot.DeleteSubKey(GetSubKeyName(type),false);
}

private static string GetSubKeyName(Type type)
{
string s = @"CLSID\{" + type.GUID.ToString().ToUpper() + @"}\Programmable";
return s;
}

Using the code above I want to grab the instance of Excel THAT THE ADD_IN is
RUNNING in. I tried this.excelAppication = new ApplicationClass(), but that
just creates a new excel instance.

Any suggestions would be very helpful.

Thank you,

mduncan
 

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

Back
Top