View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
keepITcool keepITcool is offline
external usenet poster
 
Posts: 2,253
Default Checking for existence of excel

Dave:

your method is safe but slow...
(just imagine your user has 10 addins installed)


it might be a bit faster to change as follows:
(it doesn't start a 2nd instance if there's already one running).

for this quick & dirty demo i've left out the disableevents and
displayalerts, which i normally would include.

on error resume next
set xlapp = GetObject(,"excel.application")
if not xlapp is nothing then
installed=true
else
set xlapp = CreateObject("excel.application")
if not xlapp is nothing then
xlapp.quit
installed=true
endif
endif
set xlapp=nothing



keepITcool

< email : keepitcool chello nl (with @ and .)
< homepage: http://members.chello.nl/keepitcool


Dave Peterson wrote:

Wouldn't the safest method of checking for excel is to really check to
see if it's there.

Both of these worked ok for me in MSWord--I'm not sure what language
you're using.

Option Explicit
Sub testme()
Dim myXL As Object

Set myXL = Nothing
On Error Resume Next
Set myXL = CreateObject("excel.application")
On Error GoTo 0

If myXL Is Nothing Then
'not installed
Else
myXL.Quit
End If

Set myXL = Nothing

End Sub

Sub testme2()
Dim myXL As Object
Dim isInstalled As Boolean

Set myXL = Nothing
On Error Resume Next
Set myXL = CreateObject("excel.application")
isInstalled = CBool(Err.Number = 0)
On Error GoTo 0

If isInstalled Then
myXL.Quit
Else
'not installed
End If

Set myXL = Nothing

End Sub

Mark wrote:

Hi,

My program needs to check if excel is installed before continuing so
that way it doesn't fail if it can't use the Excel.Application
object. Does anyone know a relaible way to check for this among all
versions of Excel? I can't seem to find a steady registry key or
file location that I know will always be there for any version.
Thanks.

Mark