@pvav
"Respektíve, nainštaloval by mu addin pre konkrétny zošit (napr. pre zošit Report1.xlsx addin Addin1.xlam, ...)"
Toto by pravděpodobně šlo.
Jenže mi to přijde zbytečně komplikované - pokud se nejedná a tisíce procedur, tak mi přijde jednodušší dát je do jednoho doplňku (pro všechny soubory) a volat ten jeden doplněk.
Pokud chcete testovat, který soubor (bez kódu, takže v něm nelze použít událost) je otevřen a podle něj něco dělat (otevírat doplněk), tak asi stejně budete muset mít nějaký doplněk, který toto zajistí, nainstalován.
k tomu eventu - v rychlosti například:
1 standardní modul s kódem (využiji Auto_Open)
Public test As Class1
Sub Auto_Open()
Set test = New Class1
Set test.App = Application
End Sub1 modul třídy s kódem
Public WithEvents App As Application
Private Sub App_NewWorkbook(ByVal Wb As Workbook)
MsgBox Wb.Name
End Sub
Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
MsgBox Wb.Name
End SubPři otevření nového souboru dojde k vypsání názvu otevřeného souboru.
Nicméně, excel má tendenci zapomínat, takže bych se přikláněl k 1 doplňku, v něm všechny potřebné procedury ke všem typům souborů (např. v modulech) a v těch souborech je volat.
Do excelu 2003 se dalo využít reference - pokud jste v referenci zadal soubor, který obsahoval kód, ten se otvřel s tímto souborem. Měl jsem v plánu to více prozkoumat, ale protože mi to od 2007 přestalo fungovat, tak jsem to už nezkoumal.
citovat