View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Bob Phillips Bob Phillips is offline
external usenet poster
 
Posts: 10,593
Default Code to detect if add-in is available

See if this works for you

Public Sub TestAddin()
Const ADDIN_NAME As String = "MyAddin.xla"
Const BASE_KEY As String = "HKCU\Software\Microsoft\Office\"
Dim WSH As Object
Dim AppVer As String
Dim RegKey As Variant
Dim i As Long

Set WSH = CreateObject("WScript.Shell")
AppVer = Format(Val(Application.Version), "0.0")
On Error GoTo TestAddin_Exit
RegKey = WSH.regread(BASE_KEY & AppVer & "\Excel\Options\OPEN")
If RegKey Like "*" & ADDIN_NAME & "*" Then

MsgBox "Addin available"
Else

Do

i = i + 1
RegKey = WSH.regread(BASE_KEY & AppVer & "\Excel\Options\OPEN" &
i)
If RegKey Like "*" & ADDIN_NAME & "*" Then

MsgBox "Addin available"
End If
Loop
End If
TestAddin_Exit:
End Sub

--
---
HTH

Bob


(there's no email, no snail mail, but somewhere should be gmail in my addy)



"sweez" wrote in message
...
I have the below code that I use to toggle a third-party macro from
"installed" to "uninstalled" and vice versa:

If AddIns("Hello World").installed = True Then AddIns("Hello
World").installed = False

The problem is I can not seem to come up with code that I can use to
detect if the addin is available. So if a user does not have this
addin available the code will produce an error. I am looking for
something like below (though I know the code is not right but it
illustrates what I would like to do).

If AddIns("Hello World").available = True Then
If AddIns("Hello World").installed = True Then AddIns("Hello
World").installed = False
end if

Does anyone know how I might be able to do this? Thanks in advance
for any assistance.