View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default Check for instance of EXCEL running

Look in help at GetObject. See the help example. It pretty much shows all
you have asked.

--
Regards,
Tom Ogilvy

"Kevin" wrote in message
...
Thanks! That works. I used it like below: Now a followup question if I
may...
Looking in Task Manager, If an existing instanse of Excel was running, my
app will cause a secnod Excel process to run. It works fine, except when

I
use code to reference workbooks and sheets for formatting. Can I use the
existing instance of Excel instead of opening Excel again? Is there a
variation of GetObject(, "Excel.Application") that will use the existing
instance of Excel?

Thanks very much.

Kevin

If FindWindow("XLMAIN", vbNullString) Then
Set oExcel = GetObject(, "Excel.Application")
Else
Set oExcel = CreateObject("Excel.Application")
End If

"AA2e72E" wrote in message
...
Try:

Public Declare Function FindWindow Lib "user32" Alias "FindWindowA"

(ByVal
lpClassName As String, ByVal lpWindowName As String) As Long

Sub aa()
Debug.Print FindWindow("XLMAIN", vbNullString)
End Sub

This code must go in a module. If the result is 0, no Excel session is
running.
XLMAIN is the class name for ALL versions of Excel.
"Kevin" wrote:

I'm trying to test for an existing instance of Excel already running.

In my VB6 code I do the following:

Dim oExcel As Object
Set oExcel = CreateObject("Excel.Application")

If Excel were already running I would do this:
Set oExcel = GetObject(, "Excel.Application")

How can I test to see if Excel is already running? I've found some

examples
but they were a bit convoluted.

Thanks for any help.

Kevin