Get default add-in path

R

RB Smissaert

What is the best way to get the default .xla add-in path?

Will this always be Application.UserLibraryPath ?

Or should I use a function like this:

Function GetDefaultAddinPath(Optional strIdentifier _
As String = "\addins\") As String

Dim i As Long
Dim lCount As Long
Dim lPos As Long

strIdentifier = UCase(strIdentifier)
lCount = Application.AddIns.Count

For i = 1 To lCount
lPos = InStr(1, UCase(Application.AddIns(i).FullName), _
strIdentifier, _
vbBinaryCompare)
If lPos > 0 Then
GetDefaultAddinPath = Left$(Application.AddIns(i).FullName, _
lPos + Len(strIdentifier) - 1)
Exit Function
End If
Next i

End Function


RBS
 
P

Peter T

Hi Bart,

That function appears to return the path of the first addin in the
collection that happens to exist in a folder named somepath\addins. That
assumes there is at least one addin that has a path (ie not one of the
bundled addins) and user hasn't put it in a user named folder of same name
"addins". So I would have thought the simple return you mentioned, or to
cater also for XL97 -

Function GetDefaultAddinPath2() As String
Dim sPath As String, sSep As String
#If VBA6 Then
sPath = Application.UserLibraryPath
#Else
sPath = Application.LibraryPath
#End If
sSep = Application.PathSeparator
If Right$(sPath, 1) <> sSep Then
sPath = sPath & sSep
End If
GetDefaultAddinPath2 = sPath
End Function

Regards,
Peter T
 
R

RB Smissaert

Hi Peter,

I just wondered if Application.UserLibraryPath would be foolproof or if I
needed something
along the lines (but as you say would need to be worked out a bit further)
of the function that
loops through all the add-in path's.

I have now gone with the simple Application.UserLibraryPath.
Thanks for the refinement for XL97 although I don't think I have users on
that anymore.

I needed to know this as despite having an installer that to me seems to
cover all some users still
manage to install to the default add-in folder and that causes all sorts of
problems for my app.
So I check for this and delete (kill) some files if they are there.

Bart
 

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