So verwenden Sie Ihre Excel-Add-In-Funktionen in VBA
Wenn Sie ein Add-In erstellt haben, das Ihre benutzerdefinierten Excel-Funktionen enthält, haben Sie möglicherweise festgestellt, dass die Funktionen in einem Excel-Arbeitsblatt zwar einwandfrei funktionieren, Sie sie jedoch nicht in Ihren VBA-Prozeduren in anderen Arbeitsmappen verwenden können. Es ist, als ob der Visual Basic-Editor sie nicht sehen kann. Das liegt daran, dass es nicht geht! In diesem Artikel wird erläutert, wie Sie das beheben können . Überlegen Sie zunächst, ob dies wirklich das ist, was Sie tun möchten.
Add-Ins dienen in erster Linie dazu, Ihren Arbeitsmappen zusätzliche Funktionen hinzuzufügen. Wenn Sie ein Excel-Add-In laden, steht seine Funktionalität sofort allen Ihren Arbeitsmappen zur Verfügung. Wenn Sie eine VBA-Prozedur erstellen, die von einer benutzerdefinierten Funktion in einer anderen Arbeitsmappe abhängt, muss diese andere Arbeitsmappe geöffnet sein, wenn Sie ihre Funktion verwenden möchten. Gleiches gilt für eine benutzerdefinierte Funktion in einem Add-In. Wenn das Add-In geladen ist, ist das in Ordnung. Angenommen, Sie senden Ihre Arbeitsmappe per E-Mail an eine andere Person oder verteilen sie an Ihre Arbeitsgruppe. Sie müssen daran denken, das Add-In auch zu verteilen. Es ist möglicherweise einfacher, eine Kopie der Funktion in den Arbeitsmappencode aufzunehmen, damit Ihre Prozeduren direkten Zugriff darauf haben (möglicherweise müssen Sie sie zu einer privaten Funktion machen oder ihren Namen ändern, um Namenskonflikte zu vermeiden).
Ich sage nicht, tu es nicht. Sie müssen nur zuerst darüber nachdenken. Wenn Sie sicher sind, dass das Add-In verfügbar sein wird, fahren Sie fort. So geht’s …
Wann tritt das Problem auf?
Ich schreibe eine Prozedur für eine meiner Arbeitsmappen. In meiner Prozedur möchte ich die Funktion RemoveSpaces verwenden, die ich vor einiger Zeit erstellt und in meinem Martin-Add-In für Funktionen gespeichert habe, das derzeit in meiner Excel-Kopie installiert ist. Wenn ich jedoch versuche, meine Prozedur auszuführen, wird eine Fehlermeldung angezeigt.
Der Visual Basic-Editor verhält sich so, als ob die Funktion nicht vorhanden wäre, aber ich weiß, dass dies der Fall ist, und ich kann sie sehen, wenn ich mir den Code in meinem Add-In ansehe. Tatsächlich funktioniert der Code einwandfrei, wenn ich ihn in meinem Add-In ausführe.
Ich benötige den Visual Basic-Editor, um die Funktionen in meinem Add-In im Codemodul einer anderen Arbeitsmappe anzeigen zu können.
Geben Sie Ihrem Add-In einen VBA-Projektnamen. Jede Arbeitsmappe hat einen VBA-Projektnamen. Es heißt VBAProject. Sie können diesen Namen ändern, wenn Sie möchten, aber normalerweise stört mich das nicht, weil es normalerweise keine Rolle spielt.
Haben Sie sich jemals gefragt, warum alle im Project Explorer-Bereich des Visual Basic-Editors angezeigten Arbeitsmappen „VBAProject“ heißen? Wenn Sie eines der Add-Ins von Microsoft installiert haben, werden Sie feststellen, dass diese einen anderen Namen haben. Die Microsoft-Entwickler haben ihrem Analysis ToolPak-Add-In den VBA-Projektnamen „funcres“ gegeben.
Geben Sie Ihrem Add-In zunächst einen eindeutigen VBA-Projektnamen.
Dies liegt daran, dass Sie im nächsten Schritt unter diesem Namen darauf verweisen werden. Wenn mehrere mit demselben Namen vorhanden sind, weiß der Visual Basic-Editor nicht, welchen Sie verwenden sollen.
Wählen Sie im Bereich Project Explorer den Namen Ihres Add-Ins aus. Wenn es noch nicht geöffnet ist, zeigen Sie das Properties-Fenster des Visual Basic-Editors an. Sie werden sehen, dass es nur eine Eigenschaft gibt, den Name. Geben Sie einen anderen Namen ein und drücken Sie die Eingabetaste. Sie müssen die üblichen Namensregeln für VBA einhalten (d. H. Keine unzulässigen Zeichen und keine Leerzeichen). Sie werden sehen, dass der Name sofort im Projekt-Explorer angewendet wird.
Speichern Sie nun die Änderungen in Ihrem Add-In. Stellen Sie sicher, dass Ihr Add-In im Project Explorer ausgewählt ist, und wählen Sie Datei> Speichern.
Verweis auf das Add-In festlegen In diesem Schritt teilen Sie der Arbeitsmappe, in der Sie die Funktionen Ihres Add-Ins verwenden möchten, mit, dass das Add-In vorhanden ist. Sie tun dies, indem Sie eine Referenz auf das Add-In setzen. Möglicherweise sind Sie schon einmal auf diese Technik gestoßen, wenn Sie Excel-Code schreiben möchten, um mit einem anderen Programm wie Outlook oder Access zu kommunizieren.
Wenn es Ihnen passt, starten Sie Excel an dieser Stelle neu. Dies liegt daran, dass Ihr umbenanntes Add-In neu geladen wird und die Liste, die Sie sehen möchten, aktualisiert wird. Wenn es nicht bequem ist, stören Sie sich nicht … lesen Sie den nächsten Absatz und entscheiden Sie, was Sie tun möchten.
Öffnen Sie ein Codemodul in der Arbeitsmappe, in dem Sie die Funktionen des Add-Ins verwenden möchten, und gehen Sie dann zu Extras> Referenzen, um das Dialogfeld Referenzen zu öffnen, in dem eine Liste aller Bibliotheken und anderer Objekte (z. B. Add-Ins) angezeigt wird, zu denen Sie können eine Referenz festlegen. Wenn Sie Excel neu gestartet haben, wurde diese Liste aktualisiert und Sie können den Projektnamen finden, den Sie Ihrem Add-In im letzten Schritt gegeben haben. Setzen Sie ein Häkchen in das Feld neben dem Namen und klicken Sie auf die Schaltfläche OK.
Wenn Sie Excel nicht neu gestartet haben, müssen Sie Ihre Add-In-Datei finden, indem Sie im Dialogfeld „Referenzen“ auf die Schaltfläche „Durchsuchen“ klicken. Dies öffnet das Fenster Referenz hinzufügen. Ändern Sie den Abschnitt Dateien vom Typ: in _Microsoft Excel-Dateien (.xls; .xla) _ und navigieren Sie dann zu dem Ordner, in dem das Add-In gespeichert ist.
Wählen Sie Ihr Add-In aus und klicken Sie auf Öffnen. Dadurch wird Ihr Add-In zur Liste hinzugefügt, in der Sie es auswählen und auf OK klicken können.
HINWEIS: Sie müssen nicht beide Verfahren ausführen! Wählen Sie die eine oder andere Option aus, je nachdem, ob Sie Excel nach dem Ändern des VBA-Projektnamens Ihres Add-Ins neu gestartet haben.
Jetzt können Sie die Funktionen des Add-Ins in jedem Modul in der Arbeitsmappe verwenden, in dem Sie die Referenz festlegen, und sie werden vom Visual Basic-Editor erkannt …
Wenn Sie sich den Projekt-Explorer ansehen, werden Sie feststellen, dass ein Verweis auf die Arbeitsmappe angewendet wurde …
Beachten Sie, dass das Hinzufügen eines Verweises nur für die Arbeitsmappe gilt, für die Sie dieses Verfahren ausgeführt haben. Sie müssen dies für jede Arbeitsmappe tun, in der Sie die Funktionen Ihres Add-Ins verwenden möchten.
Informationen zum Verteilen Ihrer Dateien Wenn Sie einen Verweis auf ein Add-In hinzufügen, ist dieser Link zum Add-In in der Datei „fest verdrahtet“. Wenn Sie die Datei auf einen anderen Computer verschieben oder an Ihre Mitarbeiter verteilen, erwartet die Arbeitsmappe, dass sich auf ihren Computern dasselbe Add-In an derselben Stelle befindet. Wenn das Add-In vom Computer verschoben oder gelöscht wird, kann die Arbeitsmappe es nicht finden und Ihr Code funktioniert nicht.
Einige Leute befürworten, dass sich die Datei und das zugehörige Add-In immer im selben Ordner befinden sollten, um die Probleme zu vermeiden, die dies verursachen könnte. Sie können die Referenz natürlich erneut festlegen, um das Problem zu beheben.
Berücksichtigen Sie diese Faktoren und Sie werden keine Probleme haben.