Word 365 Makro: Wo abspeichern?

LokutusvB

Lt. Junior Grade
Registriert
Dez. 2015
Beiträge
432
Hallo,

ich habe heute einen Großteil des Tages des Tages damit verbracht zu erforschen, wie die Automatisierung der MS Makros funktioniert. Dabei gibt es trotzdem noch ein paar Fragen, da mich viele Antworten diverser Foren ein wenig verwirren. In Makro-Welt von LibreOffice war dieses Thema nach meinem Geschmack viel verständlicher gelöst.

Ich habe Vorlagen erstellt und bei den Dokumenten, die aus den Vorlagen beim Öffnen entstehen, sollen automatisch je nach Vorgang verschiedene Makros ausgeführt werden.

Dafür gibt es laut dieser Seite Automatische Makros. Wenn jetzt bei jedem Öffnen des Dokumentes (nicht der Vorlage) ein Makro ausgeführt werden soll, muß ich dann AutoNew oder AutoOpen verwenden oder in diesem Fall beides?

Und worin muß ich das Makro in der Vorlage abspeichern? Gehört das in der Vorlage unter Microsoft Word Objekte -> ThisDocument oder unter Module -> NewMacros?
 
Wenn du ein neues Modul unter den Microsoft Word Objekten erstellst, erscheint automatsich der Ordner Module.

Ich selbst versuche makrobehaftete Vorlagen so wie wie möglich zu vermeiden. Denn die sind für andere ein potentielles Sicherheitsrisiko und für mich schwer zu warten.
Solange es also um Makros geht, die nur für dich relevant sind, würde ich alles in der normal.dotm konzentrieren und dort eher den Dateinamen filtern, wenn etwas nur bei einer bestimmten Datei passieren soll.

Dabei triggert AutoOpen, wenn du ein Dokument öffnest, AutoNew, wenn du ein neues Dokument basierend auf einer Vorlage erstellst und AutoExec startet wohl immer.
 
Das wird schwierig. Die Makros müssen von mehreren Leuten ausgeführt werden innerhalb einer Organisation. Das aber nicht in den Vorlagen, sondern in den Dokumenten, die aus den Vorlagen entstehen. Kann ich denn in Microsoft Office 365 Makros nur für bestimmte Dokumente zulassen und für den Rest nicht?
 
Du erzeugst eine dotm oder xlam und packst dort alle Module, Klassen und Dialoge rein.
Diese kommt dann in dein Netzlaufwerk, zB
X:\MSO\startup\Word und \Excel
Es sollten nur bestimmte Leute Schreibrechte haben, der Rest Leserechte!

Diese Ordnerstruktur kann als vertrauenswürdig deklariert werden.
Word > Optionen > Erweitert > Dateispeicherorte
  • startup definiert den Pfad wo deine Makros liegen, also \Word
  • Arbeitsgruppenvorlagen definiert einen Ordner in dem zentrale Designs und Vorlagen liegen können, zB X:\MSO\Vorlagen
Word > Optionen > Trust-Center > Vertrauenswürdige Speicherorte: den \startup hinzufügen

Für Excel läuft das äquivalent
Excel > Optionen > Erweitert > Allgemein > Beim Start alle Dateien öffnen in: ...
  • Arbeitsgruppenvorlagen kommen von Word, das regelt das für alle MSO Anwendungen
  • Trust Center noch setzen

Diese Pfade können per Gruppenrichtlinie gesetzt werden. Für Office 365 Business (kleines Paket ~8-10€) werden dies zugehörigen ADMX aber nicht ausgelesen, da muss man das per direkten Registry-Einträgen regeln. Dafür danken alle Admins Microsoft.

In diesen dann beiden zentralen Vorlagen kommen auch die zentralen Ribbons mit shared-Parameter im XML. Wenn das so integriert wird, können weitere Vorlagen eigene dynamische Ribbonteile haben, die Logik verweist aber auf die Hauptvorlage. Somit hast du exakt 2 Dateien mit Makrologik.

In C# VSTO klappt das mit den separaten Ribbons nur sehr bedingt, da muss man eher mit IsVisible im Ribbon Callback arbeiten. Mit der ganzen Makrosicherheit würde ich aber eher abraten mit VBA zu hantieren. Aber ja, manchmal ist´s einfacher oder historisch.

PS: https://imaginado.de/downloads/ du kannst dir dort den Legacy VBA noch runterladen, ich hab das dort genau so umgesetzt und über 3 Jahre im Unternehmen genutzt. Die Dateien sind offen, für den Ribbonteil wirst du den Custom UI Editor brauchen.
 

Ähnliche Themen

Zurück
Oben