Iterieren nicht registrierter Add-Ins (.xla)

8

Ich brauche Hilfe in

  • herauszufinden, wie man durch aktuell geöffnete Excel-Add-In-Dateien (.xla) , die in Excel nicht mit dem Tools > Add-ins -Menüpfad registriert wurden, iteriert.
  • Genauer gesagt interessiert mich jede Arbeitsmappe, die nicht im Add-In-Dialog erscheint, aber ThisWorkbook.IsAddin = True .

Demonstration des Problems:

Wenn Sie versuchen, Arbeitsmappen wie folgt zu durchlaufen, werden keine Arbeitsmappen mit .AddIn = True :

angezeigt %Vor%

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?

    
jevakallio 13.11.2008, 14:29
quelle

6 Antworten

7

Ab Office 2010 gibt es eine neue Sammlung .AddIns2, die mit .AddIns identisch ist, aber auch die nicht registrierten .XLA-Plugins enthält.

%Vor%     
Chris C. 17.01.2013, 20:30
quelle
1

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%     
brettdj 21.09.2016 04:37
quelle
0

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%     
jevakallio 13.11.2008 16:20
quelle
0

Was ist damit?

%Vor%

Irgendwelche Verwendung?

    
Mike Woodhouse 26.11.2008 11:58
quelle
0

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.

%Vor%

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.

    
Hobbo 28.11.2008 13:40
quelle
0

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%     
Ant 12.12.2008 14:16
quelle