ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Checking for existence of excel (https://www.excelbanter.com/excel-programming/302594-re-checking-existence-excel.html)

Dave Peterson[_3_]

Checking for existence of excel
 
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


--

Dave Peterson


keepITcool

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




Dave Peterson[_3_]

Checking for existence of excel
 
None of my addins were loaded when I started excel this way.



keepITcool wrote:

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



--

Dave Peterson


keepITcool

Checking for existence of excel
 

ouch.. you're totally correct re the addins.
(the clsid starts excel with /automation switch)


I remember having problems with this before, but it might have been with
powerpoint.. or maybe with a machine with just xl97??


At least the extra line of code will prevent loading double instance of
excel :)


keepITcool

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


Dave Peterson wrote:

None of my addins were loaded when I started excel this way.





All times are GMT +1. The time now is 11:45 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com