Check for instance of EXCEL running

K

Kevin

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
 
K

Kevin

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
 
H

Harald Staff

Hi Kevin

Don't overcomplicate this. Just use GetObject. If it errs then excel's not
running and so you create one:

Dim oExcel As Object
On Error Resume Next
Set oExcel = GetObject(, "Excel.Application")
If oExcel Is Nothing Then
Set oExcel = CreateObject("Excel.Application")
End If

HTH. Best wishes Harald
 
T

Tom Ogilvy

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

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