Ich brauche Hilfe in
Tools > Add-ins
-Menüpfad registriert wurden, iteriert. ThisWorkbook.IsAddin = True
. Demonstration des Problems:
Wenn Sie versuchen, Arbeitsmappen wie folgt zu durchlaufen, werden keine Arbeitsmappen mit .AddIn = True
:
Das Durchlaufen von Add-Ins ruft keine Add-Ins ab, die nicht registriert sind:
%Vor%Das Durchsuchen der VBProjects-Auflistung funktioniert nur, wenn der Benutzer in den Makrosicherheitseinstellungen speziell auf das Visual Basic-Projekt vertraut hat (selten:
) %Vor%Wenn jedoch der Name der Arbeitsmappe bekannt ist, kann die Arbeitsmappe direkt referenziert werden, unabhängig davon, ob es sich um ein Add-In handelt oder nicht:
%Vor%Aber wie ist es möglich, einen Verweis auf diese Arbeitsmappe zu erhalten, wenn der Name nicht bekannt ist und die Sicherheitseinstellungen des Benutzers nicht zuverlässig sind?
Ich hatte Probleme mit Add-Ins, die installiert sind (und in der VBE), die nicht über den Benutzer Addin
auf Exel 2013 (in einer Arbeitsumgebung) verfügbar sind.
Das Basteln mit der Lösung von Chris C hat eine gute Lösung gefunden.
%Vor%Ich bin immer noch auf der Suche nach einer vernünftigen Lösung für dieses Problem, aber vorläufig scheint es, dass das Lesen der Fenstertexte aller Arbeitsmappenfenster eine Sammlung aller geöffneten Arbeitsmappen, Add-Ins oder nicht enthält:
%Vor%Verwenden Sie = DOCUMENTS, eine Excel4-Makrofunktion.
%Vor%Hier ist die Dokumentation dafür (verfügbar hier ):
DOKUMENTE
Gibt als horizontales Array in Textform die Namen der angegebenen geöffneten Arbeitsmappen in alphabetischer Reihenfolge zurück. Verwenden Sie DOKUMENTE, um die Namen geöffneter Arbeitsmappen abzurufen, die in anderen Funktionen verwendet werden, die geöffnete Arbeitsmappen bearbeiten.
Syntax
DOKUMENTE (type_num, match_text)
Type_num ist eine Zahl, die angibt, ob Add-In-Arbeitsmappen in das Array von Arbeitsmappen gemäß der folgenden Tabelle aufgenommen werden sollen.
Match_text gibt die Arbeitsmappen an, deren Namen zurückgegeben werden sollen, und kann Platzhalterzeichen enthalten. Wenn match_text weggelassen wird, gibt DOCUMENTS die Namen aller geöffneten Arbeitsmappen zurück.
Ist das Durchlaufen der Registrierung eine Möglichkeit? Ich weiß, dass dies keine Momentaufnahme dessen ist, was Ihre Instanz von Excel verwendet, sondern was eine neue Instanz verwenden würde - aber abhängig davon, für was Sie es brauchen, könnte es gut genug sein.
Die relevanten Schlüssel sind:
%Vor%Tags und Links vba excel excel-vba add-in excel-addins