Add-In-Verzeichnis mit Wizhook ermitteln

Manchmal benötigt man für einen bestimmten Zweck das Verzeichnis, in dem sich die Access-Add-Ins befinden. Bevor man eine Internetrecherche startet, wo sich dieser befindet, kann man auch einfach eine kleine, versteckte Funktion verwenden.

Access-Add-Ins werden, wenn sie mit dem Add-In-Manager installiert wurden, immer in einem bestimmten Verzeichnis gespeichert.

Wenn man dieses Verzeichnis sucht, um beispielsweise ein nicht mehr benötigtes Access-Add-In zu löschen, kostet das manchmal unnötig Zeit.

Viel einfacher geht es mit einem geheimen VBA-Befehl. Dieser gehört zur Wizhook-Klasse, die intern von Access für verschiedene Zwecke genutzt wird, aber nicht offiziell dokumentiert und auch nicht über den Objektkatalog einsichtbar ist.

Der Clou bei der Wizhook-Klasse ist, dass man die enthaltenen Methoden und Funktionen nur nutzen kann, wenn man die Key-Eigenschaft auf einen bestimmten Zahlenwert einstellt:

WizHook.Key = 51488399

Danach kann man die zahlreichen Funktionen nutzen.

In diesem Fall wollen wir das Verzeichnis mit den Access-Add-Ins ermitteln, was wir wie folgt erledigen:

Debug.Print WizHook.OfficeAddInDir

Dies liefert beispielsweise:

C:\Users\User\AppData\Roaming\Microsoft\AddIns\

In einer kleinen Funktion können wir diese Funktion wie folgt nutzen:

Public Function GetAddInFolder() As String
      WizHook.Key = 51488399
      GetAddInFolder = WizHook.OfficeAddInDir
End Function

Ausführen lässt sie sich mit dem folgenden Aufruf, zum Beispiel im Direktbereich des VBA-Editors:

Debug.Print GetAddInFolder

Schreibe einen Kommentar