It depends on the type of add-in. Basically you can have Excel add-ins (usually written in VBA) and COM add-ins which can be written in any language that understands COM. It can also depend where the the add-in is installed.
Excel add-ins in certain directories can be found and opened automatically. A common place to install Excel add-ins is at C:\Users\\AppData\Roaming\Addins. If an Excel add-in is stored here it can be opened from the File->Options->Addins tab in Excel or from the Developer tab if you have enabled it. After the add-in has been enabled in either place it will generally load whenever Excel is started.
COM addins are installed using an installer which places a reference to the add-in in the registry. Excel looks in the registry for these add-ins when it opens. The two locations I described above also contain lists of COM add-ins, and they can be enabled through these lists.
Also, you can force a workbook to open an add-in from VBA. When your workbook is opened, a routine named Workbook_Open is executed. Some code like this will force the addin to be installed.
Sub Workbook_Open()
Const addinName as String = "insert the name of your add-in"
If Not AddinLoaded(addinName) Then
If AddinAvailable(addinName) Then
On Error Resume Next
Application.AddIns2(addinName).Installed = True
On Error GoTo 0
End If
End If
End Sub
Function AddinAvailable(addinName As String) As Boolean
Dim ad As AddIn
On Error Resume Next
Set ad = Application.AddIns2.Item(addinName)
On Error GoTo 0
AddinAvailable = Not ad Is Nothing
End Function
Function AddinLoaded(addinName As String) As Boolean
Dim ad As AddIn, errNumber As Long
On Error Resume Next
Set ad = Application.AddIns2.Item(addinName)
errNumber = Err.Number
On Error GoTo 0
If Not ad Is Nothing Then
If errNumber = 0 Then AddinLoaded = ad.Installed And ad.IsOpen
End If
End Function