Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() 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. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Checking for the existence of a worksheet | Excel Discussion (Misc queries) | |||
Checking for the existence of a characted in a string | Excel Discussion (Misc queries) | |||
Checking for existence of excel | Excel Programming | |||
Checking for the Existence of a Folder | Excel Programming | |||
Checking for existence of macros or code in an Excel Spreadsheet | Excel Programming |