Hallo,
In unserer Verwaltung gibt es rund 30 Abteilungen/Gremien, die
eigene Vorlagen (MS-Office 2010) benötigen. Die Basisvorlagen
(…) unterscheiden sich im Kopf(…) und im Fuss (…).
Die Vorlagen werden einerseits direkt in Office verwendet und
andererseits aus einem DMS heraus, welches die Vorlagen via
Textmarken/Makros befüllt.
Ich suche (…) eine
Möglichkeit, automatisch aus den Basisvorlagen für alle
Abteilungen/Gremien ihre individuellen Vorlagen zu erstellen.
mir fehlen da eigentlich noch ein paar Infos, wie die Vorlagen letztlich vorliegen und was genau an gezielten Änderungen automatisiert werden soll.
Falls eine Basisvorlage (die sich ja offensichtlich ab und zu ändert, sonst bräuchte man keine Automatik?) z.B. immer wieder in gleicher Form nach einem bestimmten Schema für die verschiedenen Abteilungen angepasst werden muss, kann man diese Anpassung durchaus per Makros hinbekommen.
Hier mal ein etwas „schmutzig“ hingeworfener Versuch, wie es gehen könnte, denn ich hatte so etwas ähnliches früher auch schon mal mit Dokumenten gemacht, die in drei Versionen mit unterschiedlichen Kopfzeilenbereichen erstellt werden sollten. Das Makro musste ich nicht mal komplett programmieren, sondern konnte es fast vollständig aufzeichnen, d.h. Word (damals noch die Version 2000, glaube ich; aber Word 2010 kennt Makros ja auch) hat sich meine Schritte einmal gemerkt und sie hinterher selbständig auf die anderen Dokumente angewendet.
Vorgehensweise wäre grob z.B. so:
(VBA-Programmierer dürfen gerne schimpfen, weil viele Einzelschritte eigentlich überflüssig sind, wenn man es programmiert.)
30 leere Dateien mit den unterschiedlichen, aber wohl fest vorgegebenen Kopf- und Fußzeilen füllen und in einem festen Verzeichnis abspeichern und schließen. Dann eine der Basisvorlagen öffnen, die in die 30 unterschiedliche Fassungen gebracht werden soll.
Makroaufzeichnung starten und mit jeder der bereits erzeugten Kopf-Fußzeilen-Varianten nacheinander folgendes tun:
- Datei öffnen
- Kopfzeile markieren und kopieren
- Datei schließen
- in Kopfzeile einfügen (ggf Leerzeile löschen)
- Datei nochmals öffnen
- Fußzeile markieren und kopieren
- Datei schließen
- in Fußzeile einfügen (ggf Leerzeile löschen)
- Datei „speichern unter“
- Kopf und Fußzeileninhalte löschen
Diese Liste wiederholt man für jede der 30 vorab erstellten „Platzhalterdateien“. Wenn man damit fertig ist, beendet man die Makroaufzeichnung.
Die dabei neu erstellten 30 Vorlagen (nicht die Dateien, aus denen man kopiert hat!) verschiebt man an eine andere Stelle des Dateisystems (und/oder benennt sie ggf um), weil das Makro in seiner so erstellten Form die vorhandenen Dateien überschreiben würde.
Jetzt kann man eine andere Basisvorlage öffnen und das Makro abspielen. Es wird dann wieder die 30 ursprünglich von Hand erzeugten Dateien öffnen und aus diesen die Kopf- und Fußzeilen in die bestehende Vorlage einfügen.
So wäre das grobe Prinzip, sofern man nicht weiß, wie man Makros (um)programmiert. Allerdings ist schon die Aufzeichnung langwierig und fehleranfällig. Das Abspielen müsste außerdem auch mehrfach aufgerufen werden (einmal pro Basisvorlage).
Wer sich mit Programmierung auskennt, kann auch die 30 mal 2 Kopier/Einfügeaktionen in eine Schleife mit 30 Durchläufen setzen. Zusätzlich könnte man noch eine Schleife über alle Basisvorlagen programmieren, so dass man diese nicht mehr einzeln öffnen und darin von Hand das Makro starten müsste.
Das Schöne ist ja: Wenn die Aufzeichnung durch ist und jemand sowieso Programmierkenntnisse hat, kann man die Änderungen eigentlich gut programmieren, auch ohne dass man alle VBA-Eigenheiten kennen müsste. Kontrollstrukturen gehören ja zu allen Programmiersprachen irgendwie dazu und die wesentlichen Elemente, die VBA-spezifisch sind, werden automatisch durch die Aufzeichnung erstellt.
So ähnlich jedenfalls habe ich das damals gemacht, weil ich keine Lust hatte, die ganzen Word-Objekte und deren Eigenschaften und Methoden aus den VBA-Dokumentationen herauszusuchen. Allerdings meine ich, dass man bei Word noch den ein oder anderen Kniff bei der Aufzeichnung beachten bzw hinterher in der Programmierung korrigieren musste. Aber das ist etwas lange her. In den Details wird jemand anderes helfen müssen, da ich in der Word-Programmierung nicht so fit bin (wie man hier sicher erahnen konnte). 
Aber prinzipiell könnte das so ähnlich laufen, falls es überhaupt in etwa das ist, was du brauchst.
Gruß
A