View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Peter T Peter T is offline
external usenet poster
 
Posts: 5,600
Default Cancel Addin Install from Workbook_AddinInstall?

Hi Dave,

Need to bear in mind that the AddinInstall event fires before the addin
actually gets installed. So let that pass then uninstall after, eg

Private Sub Workbook_AddinInstall()

'If some condition that disallows install then

Application.OnTime Now, "UninstallMe"

'End if
End Sub

' in a normal module

Sub UninstallMe()
MsgBox "Don't install me agian ! " _
& ThisWorkbook.Name, , "Bye"

Application.AddIns(ThisWorkbook.Title).Installed = False

End Sub

..Title requires your title in Properties Summary Title
Alternatively loop through the collection looking for thisworkbook.name

The addin will close and not load next time. Though not installed it may
remain in the addins collection, conveniently waiting for user to tick it
again without having to Browse to. Could be a little or lot more work to get
rid of all trace of it.

Regards,
Peter T

"Dave Ramage" wrote in message
...
Hello,

Can anyone tell me if/how it is possible to cancel the installation of an
addin from either Workbook_Open or Workbook_AddinInstall?

I want to prevent users from installing an addin file if it located on a
network drive. The problem is that once the user has started the

installation
process (either by double clicking the file in explorer or through
Tools/Iddins), it seems difficult to stop by VBA code!

This is what I've tried so far:

Private Sub Workbook_AddinInstall()
Dim a As AddIn
If OnNetworkDrive(Thisworkbook.FullName) Then 'returns true if file is

on
network drive
Thisworkbook.Close
For Each a In Application.AddIns
If a.Name = ThisWorkbook.Name Then
a.Installed = False
End If
Next a
Exit Sub
End If
'goes on to install menus etc.
End Sub

This closes the addin workbook OK, but does not prevent the addin being
installed- i.e. next time Excel is started, the add-in is loaded.

Thanks,
Dave