Code to detect if add-in is available

S

sweez

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.
 
B

Bob Phillips

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)
 
P

Peter T

Assuming the addin has already been installed into the addins collection

Dim adn as Addin

On error resume Next
Set adn - Addins("Hello World") ' use title
On error goto 0 ' or resume normal error handling

If adn is Nothing Then
' maybe see if it's open, if so could 'Add' it to the addins collection
' and Install it
Else
' toggle - really ?
adn.Installed = Not adn.Installed
End If

Curiosity - why toggle

Regards,
Peter T
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top