marcoborn
Goto Top

COM-Addin aktivieren

Hallo Forum,
ich möchte gern per VBA-Makro ein bereits installiertes COM-Addin (de-)aktivieren.

Laut Online-Hilfe dient dazu die Connect-Eigenschaft. Ich kann damit das Addin deaktivieren, aber beim späteren Aktivieren bekomme ich eine Fehlermeldung
"Objekterstellung durch ActiveX-Komponente nicht möglich". In der Liste der installierten Addins taucht es jedoch noch auf.

Wie bekomme ich das COM-Addin wieder aktiviert?

Vielen Dank,
M. Born

Content-ID: 283165

Url: https://administrator.de/contentid/283165

Ausgedruckt am: 24.11.2024 um 14:11 Uhr

eisbein
eisbein 17.09.2015 aktualisiert um 14:39:08 Uhr
Goto Top
Hallo!

Gibt es dazu evtl. noch etwas mehr Infos?

Visual Studio - welche Version?
VBA-Makro für Excel, Word, Outlook ...
Das COM-Addin hat sicherlich auch einen Namen?

Du willst also VBA-Code mit Visual Studio schreiben? face-wink

Beschreibe dein Vorhaben etwas genauer, damit man es nachvollziehen kann.

Gruß
Eisbein

EDIT:
Kann sein, dass die Rubrik "Visuial Studio" etwas verwirrt. Infos schaden trotzdem nicht face-wink
114757
114757 17.09.2015 aktualisiert um 14:41:38 Uhr
Goto Top
Moin,
habs gerade mal in Outlook 2010 getestet, geht hier problemlos (VBA):
Test mit TeamViewer Plugin
Dim a As COMAddIn
For Each a In COMAddIns
    If InStr(1, a.DESCRIPTION, "TeamViewer") > 0 Then  
        a.Connect = True
    End If
Next
Es könnte aber bestimmte Plugins geben die erst wieder bei einem Neustart der Office-Applikation funktionieren.

Gruß jodel32
MarcoBorn
MarcoBorn 17.09.2015 um 14:50:20 Uhr
Goto Top
Hallo Eisbein,
das COM-Addin habe ich selbst in VB.NET geschrieben. Ich möchte jetzt entweder ebenfalls in VB.NET oder (falls das nicht geht in VBA) ein 2. Addin schreiben, das das andere Addin deaktiviert, mit einer neuen Version überschreibt und dann wieder neu lädt und aktiviert.

Ich nutze SharpDevelop 4.4 als IDE. VBA-Makros würde ich in Excel-VAB schreiben, da das Addin fürExcel genutzt wird. Eine -NET-Rubrik gibt es ja nicht, daher habe ich es unter Visual Studio gepostet, weil es am besten dazu passt.

Viele Grüße,
M. Born
114757
114757 17.09.2015 aktualisiert um 15:49:39 Uhr
Goto Top
Warum machst du das Update nicht mit einem Installer ? Denn auch wenn in Excel das Addin deaktiviert ist, kann es unter Umständen sein das das Addon(DLL) trotzdem noch in Benutzung durch Excel ist, dann kommst du nicht drum herum Excel neu starten zu lassen, damit du die Ressource aktualisieren kannst.
MarcoBorn
MarcoBorn 17.09.2015 um 16:08:34 Uhr
Goto Top
Mein 2. Addin soll ja ein Updater-Addin sein. Da ich das Ganze ohne VSTO entwickelt habe, benötige ich keinerlei Registrierung in der Registry etc. Es reicht, die XLL durch eine neue Version zu ersetzen. Ich möchte das Ganze aber auch automatisch realisieren, wenn das Updater-Addin beim Excel-Start geladen wird. Da u.U. das Haupt-Addin schon geladen wurde, muss ich es jedoch deaktivieren und aktivieren können.
114757
114757 17.09.2015 um 16:13:04 Uhr
Goto Top
Wie willst du aber das File ersetzen wenn es noch in Benutzung ist ? Habe nämlich schon diverse Systeme gesehen bei denen das deaktivieren des Addins es nicht komplett entladen hat. Eine externe Komponente die das z.B. via Taskplaner erledigt, wäre hier glaub ich eine bessere Idee.
MarcoBorn
MarcoBorn 17.09.2015 um 17:27:21 Uhr
Goto Top
Direkt beim Excel-Start soll das Update-Addin das Haupt-Addin (falls es schon geladen ist) deaktivieren, dann die neue Datei drüberkopieren und es dann neu laden. Erst wenn das erfolgt ist, soll eine Funktion aus dem Haupt-Addin aufgerufen werden.

Ein Taskplaner kann durch die Nutzer ggf. verändert werden und soll daher nicht eingesetzt werden.
114757
114757 17.09.2015 aktualisiert um 17:31:54 Uhr
Goto Top
Zitat von @MarcoBorn:

Direkt beim Excel-Start soll das Update-Addin das Haupt-Addin (falls es schon geladen ist) deaktivieren,
Es gilt das selbe was ich oben schon geschrieben habe, wenn es schon geladen wurde kann es zwar entladen werden, die Datei kann aber trotzdem noch durch Excel gesperrt sein !! Schon mehrfach erlebt ...
eisbein
eisbein 17.09.2015 um 17:52:13 Uhr
Goto Top
Hallo!

Wie jodel32 schon mehrfach erwähnt hat wirst du um den Neustart von Excel nicht rum kommen.

Ein Taskplaner kann durch die Nutzer ggf. verändert werden und soll daher nicht eingesetzt werden.

Auch eine Excel-Worksheet mit Makros bzw. Sperren kann verändert werden, also lass dich nicht von vermeintlicher Sicherheit täuschen face-wink

Wenn du schon unbedingt Excel benötigst und ohnehin mit vb.net vertraut bist, warum schreibst du keine vb.net Anwendung die dann Excel als Objekt einbindet?

Gruß
Eisbein