Wie kann ich eigene Makros verteilen?

Zuletzt geändert am 14. Mai 2012

Sie haben ein eigenes Makro erstellt oder ein Beispiel von dieser Homepage genommen und möchten es nun auf mehrere Computer verteilen.

Das ist leider nicht ganz so einfach, da es in Outlook® (im Gegensatz zu Excel® z. B.) nur 1 Projektdatei gibt. D. h. in dieser 1 Projektdatei werden sämtliche Makros von Outlook® verwaltet.

Kein großes Problem haben Sie, wenn der Anwender, auf dessen Computer Makros installiert werden sollen, noch keine eigenen Makros erstellt hat. Dies ist recht leicht feststellbar, da in diesem Fall noch keine Datei mit Namen VBAProject.otm im Benutzerpfad existiert:

C:\Users\%BENUTZERNAME%\AppData\Roaming\Microsoft\Outlook für Vista / 7

bzw.

C:\Dokumente und Einstellungen\%BENUTZERNAME%\Anwendungsdaten\Microsoft\Outlook für XP

D. h. Sie können z. B. mit Inno Setup ein kleines Setup erstellen, das zunächst prüft, ob diese Datei vorhanden ist. Wenn nicht, wird einfach die Datei VBAProject.otm in das Benutzerverzeichnis kopiert. Ist sie vorhanden, sollte eine Meldung erscheinen, dass vorhandene Makros "deaktiviert" werden. Das "Deaktivieren" nehmen Sie einfach durch das Umbenennen der vorhandenen Datei vor (z. B. in VBAProject.otm.old). Damit kann man im Notfall die vom Anwender erstellten Makros wiederherstellen und gegebenenfalls in die neue Projektdatei von Hand importieren.

Damit das Setup bei vorhandener VBAProject.otm-Datei korrekt funktioniert, müssen Sie darauf achten, dass Outlook® geschlossen ist. War noch keine Datei vorhanden und Outlook® geöffnet, muss es neu gestartet werden, damit die kopierte Datei eingelesen wird.

Die professionelle Methode zum Verteilen von Makros besteht in der Erstellung eines Com-Add-Ins. Dabei handelt es sich um eine Dll, die für Outlook® registriert wird und sich so nahtlos in Outlook® integriert. Die so erstellte Dll kann im einfachsten Fall mit regsvr32 registriert bzw. entregistriert werden oder aber auch mit Hilfe eines kleinen Setups.

Um eine solche Dll zu erstellen wird jedoch Zusatzsoftware benötigt (z. B. Office Developer XP, Visual Basic (beides veraltete Entwicklungsumgebungen) oder Visual Studio (aktuelle Entwicklungsumgebung)).