![]() |
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 |
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 |
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