Jak detekovat existenci doplňku v Excelu
Potřeboval bych nějak detekovat, zda je v Excelu přítomen (pokud ano, pak ještě zda je zapnut či vypnut) COM doplněk Microsoft Azure Information Protection. Je to nedodělek od Microsoftu působící problémy v případě, že je Excel volán z jiné aplikace. Potřebuji tuto situaci nějak ošetřit. Je asi jedno, zda pomocí VBA přímo v Excelu či PowerShellem. Nedaří se mi ale najít žádnou informaci jak postupovat. Díky za rady.
Totok?
https://learn.microsoft.com/en-us/office/vba/api/excel.addin.installed
Na detekci existence doplňku perfektní. Ještě potřebuji dořešit jak detekovat zda je zapnutý/vypnutý a případně jej zapnout/vypnout.
Prehľad s rozdelením na aktívne - neaktívne - zakázané:
Súbor - Možnosti - Doplnky
Možnosť vypínania - zapínania:
Karta Vývojár - podskupina Doplnky
Tohle je samozřejmě jasné, já to potřebuji detekovat programově přes VBA.
Tipy cez google si už skúšal? Našiel som viacero linkov riešiace enable-disable add ins resp. add in installed ale keďže nie som angličtinár, neviem posúdiť, či riešia tú stránku veci, čo potrebuješ
Ten odkaz z prvního příspěvku vypadal nadějně, jenže jsem bohužel zjistil, že takto se pracuje s doplňky Excelu. Já řeším problémový doplněk modelu COM.
Videl som tam linky i ku COM doplnkom... Momentálne nie som na PC a mobilom sa to hľadá nepohodlne. Ak to nenájdeš, skúsim to nájsť keď sadnem za PC.
https://stackoverflow.com/questions/47770787/disable-com-addin-through-code
https://www.mrexcel.com/board/threads/disabling-com-addin-with-vba.1141108/
a pod
Vypadá to nadějně, ale bude s tím spousta práce a testování. Pak dám vědět, jak to dopadlo.
Detekce problémového doplňku vyřešena pomocí jednoduchého makra, které přikládám pro případné další zájemce. Díky za vyhledané odkazy, které mi poskytly informace vedoucí k řešení.
Sub testMSIP()
Dim certAddin As COMAddIn
Err.Number = 0
On Error Resume Next ' pri chybe pokracuj dále bez varovani
With Application.COMAddIns("MSIP.ExcelAddin")
If Err.Number > 0 Then
'nastala chyba
If Err.Number = 9 Then
' chyba, že v kolekci není, nemohu pouzit COMAddIns.Description
MsgBox "Doplněk Microsoft Azure Information Protection nebyl nalezen"
Else
'jina chyba, vypise jeji popis
MsgBox " chyba: " & Err.Description
End If
Else
'(bez chyby) existuje v kolekci COMAddIns
' vychozi nastaveni pro zobrazeni chyb
On Error GoTo 0
'test zda je zapnut
If .Connect = True Then
MsgBox "Nalezen aktivní doplněk : " & .Description
Else
MsgBox "Nalezen vypnutý doplněk : " & .Description
End If
End If
End With
End Sub
som rád, že sa podarilo