View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
mduncan mduncan is offline
external usenet poster
 
Posts: 2
Default Retrieving Current Excel Instance from Automation Add-IN

Thank you. The on connection solution works perfectly!

"Simon Murphy" wrote:

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" wrote:

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(ty pe));
}

[ComUnregisterFunctionAttribute]
public static void UnregisterFunction(Type type)
{
Registry.ClassesRoot.DeleteSubKey(GetSubKeyName(ty pe),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