Makros einbinden
23. September 2006
Grundsätzlich gibt es drei Möglichkeiten, Makros in Excel einzubinden
- Makros in einer Arbeitsmappe speichern: Das Makro ist nur für diese Datei verfügbar.
- Makros in der Makroarbeitsmappe “Personal.xls” speichern: Das Makro ist nur für diesen Computer, aber für alle Dateien verfügbar.
- Makros als Add-In speichern: Das Makro ist nur für diesen Computer, aber für alle Dateien verfügbar. Das Add-In lässt sich – wie eine Datei – einfach weitergeben
A.) Wenn Sie ein Makro nur in einer bestimmten Datei verwenden wollen, können Sie das Makro in dieser Datei abspeichern. Das hat den Vorteil, dass Sie die Datei einfach an andere weitergeben können und die Funktionalität des Makros weiterhin vorhanden ist. Das Makro funktioniert allerdings nur, wenn die Datei, in der das Makro gespeichert wurde, auch geöffnet ist. Wollen Sie das Makro also in verschiedenen Dateien anwenden, so sollten Sie B.) oder C.) verwenden, oder in Einzelfällen auch das Makro jeweils in die betroffenen Dateien kopieren. Das hat allerdings den Nachteil, dass Sie Änderungen am Makro-Code (und die gibt es erfahrungsgemäß fast immer) in allen Dateien nachziehen müssen.
Zum Einbinden des Makros-Codes in der Datei gehen Sie wie folgt vor:
- Öffnen Sie den Makro-Editor (VBE – Visual Basic Editor) mit der Tastenkombination Alt+F11 oder gehen Sie über den Menüpunkt Extras – Makro – Visual Basic Editor
- Sie sehen überlicherweise links oben die VBA-Projektübersicht (siehe Bild 1), in der alle offenen Arbeitsmappen sowie alle geladenen Add-Ins angezeigt werden.
Markieren Sie ein beliebiges Objekt, beispielsweise eine Tabelle in der Arbeitsmappe, in der Sie das Makro einfügen möchten. Hier im Beispiel von Bild 1 ist das Mappe1, Tabelle1. Anschließend müssen Sie über den Menüpunkt Einfügen – Modul ein neues Modul hinzufügen. Das Ergebnis sollte ähnlich dem in Bild 2 sein. - Sie sollten nun das Eingabefenster für den Makro-Code entsprechend Bild 3 sehen. Hier können Sie eigenen Code programmieren oder Makros per Copy-and-paste einfügen.
- Wenn Sie die Datei abspeichern, wird der eingegebene Makrocode automatisch mit der Datei gespeichert, genau wie Daten in den Tabellenblättern.
Bild 1

Bild 2

Bild 3

B.) Zum Einbinden von Makros in die Persönliche Makroarbeitsmappe gehen Sie genauso vor wie bei A.), nur dass Sie in der VBA-Projektübersicht (Bild 1) die Personl.xls auswählen. Falls diese noch nicht vorhanden ist, müssen Sie sich diese Datei erzeugen, in dem Sie ein Makro aufzeichnen, siehe Bild 4. Gehen Sie dazu in Excel (also nicht im Makro Editor) auf den Menüpunkt Extras – Makro – Aufzeichnen und zeichnen Sie eine beliebige Aktion, z.B. die Eingabe einer Zahl als Makro in der Personl.xls auf. Danach sollte die Personl.xls in der VBA-Projektübersicht erscheinen.
Bild 4

C.) Für das Abspeichern eines Makros in einem Add-In müssen Sie genau so vorgehen wie bei A.), nur, dass Sie die Datei nicht als normale Excel Datei mit der Endung .xls abspeichern, sondern über den Menüpunkt Datei – Speichern unter – Dateityp: Microsoft Excel-Add-In(*.xla) die Datei als Add-In abspeichern.
Samstag 23. September 2006 um 7:22 pm
Ich vermute, dass A und B bei Mehrbenutzersystemen jeweils für den aktuellen Benutzer gelten?
Bei Dateien mit Makros (A) warnt Excel beim Öffnen vor den Makros und deaktiviert sie, wenn man nichts anderes angibt. Kann man das als Autor verhindern (Singatur o.ä.)? Passiert das auch bei Add-Ins?
Samstag 23. September 2006 um 7:57 pm
Hallo Chris,
ja und nein. Die Personl.xls (persönliche Makroarbeitsmappe (B) ) ist benutzerabhängig und liegt beispielsweise unter “C:\Dokumente und Einstellungen\ Username\ Anwendungsdaten\ Microsoft\ Excel\ XLStart”. Daher auch der Name “persönliche” Makroarbeitsmappe.
Bei (A) hingegen ist der VBA-Quellcode tatsächlich, ähnlich wie die Daten eines Tabellenblatts, in der xls-Datei gespeichert. Somit kann jeder der Zugriff auf die Datei hat, auch die eingebundenen VBA Prozeduren (z.B. Makros oder UDFs) verwenden.
Man kann als Autor über Selfcert Signaturen erstellen und den Quellcode signieren. Voraussetzung dafür, dass die Warnung nicht angezeigt wird ist, dass das mit Selfcert erstelle Zertifikat auf dem jeweiligen Rechner installiert ist. Zudem sind diese Zertifikate nicht besonders sicher, da sie von jedem erstellt werden können.
Im Gegensatz zu eigenen Zertifikaten die durch Selfcert erstellt wurden, können Zertifikate auch bei offiziellen Zerfitizierungsstellen erworben werden.
Add-Ins werden im Hintergrund geöffnet, sobald Excel gestartet wird (also mit der Applikation). Warnmeldungen werden normalerweise nicht angezeigt.
Die Sicherheitseinstellungen lassen sich aber auch anpassen über Extras-Makros-Sicherheit.
Donnerstag 26. Oktober 2006 um 10:43 am
wenn ich ein Makro aufzeichnen will, dann kommt immer: kann nicht aufzeichnen! wie kann ich das problem beheben?? mfg geyer
Donnerstag 26. Oktober 2006 um 7:49 pm
Hallo Johannes,
bei Zellen die mehr als 255 Zeichen (Text) enthalten kann es zu Problemen bei der Makroaufzeichnung kommen. Weiter könnten Rechteprobleme (Admin) dafür verantwortlich sein.
Gruß
Eike
Dienstag 23. Oktober 2007 um 10:54 am
Hi,
also ich habe das folgende Problem:
Ich habe eine Symbolleiste erstellt und den Buttons versch. Makros zugewiesen. Alles zusammen dann in einem Add-In gespeichert. Wenn ich jetzt dieses Add-In auf dem Netzlaufwerk von einem anderen Computer aus aufrufe und die Makros über die Buttons starten will bekomme ich die Fehlermeldung “‘abc.xls’ kann nicht gefunden werden. Blablabla”. Ich muss dann jedes Mal den Pfad zu den Makros für jeden Button erneuern.
Wäre schön, wenn es eine einfachere Lösung gebe.
Vielen Dank im Vorraus.
Liebe Grüße,
Tim
Dienstag 23. Oktober 2007 um 9:25 pm
Hallo Tim,
ich benutze selbst Add-Ins, die ich allerdings lokal vorliegen habe (auf der C-Platte). Über ein Script wird das Add-In im Firmennetz verteilt und auf alle Rechner kopiert. Mit diesem Vorgehen gab es keine Probleme mit Pfaden.
Gruß
Eike
Mittwoch 24. Oktober 2007 um 3:45 am
Vielen Dank, werd’ ich gleich mal ausprobieren.
LG,
Tim