One common pattern of Office development is the Office Automation Executable—a console or windows forms application that starts up an Office application and talks to it. Sometimes you won’t want to start a new instance of an Office application but will instead want to attach to an already running instance. To do this, you can use one of two methods provided by .NET. System.Runtime.InteropServices.Marshal.GetActiveObject allows you to attach to a running instance of an Office application by passing a string identifier for the Office application called a program ID or ProgID
Excerpt from:
Attaching to an already running Office application from your application using GetActiveObject or BindToMoniker