Makro automatisch starten in WORD XP

Hallo,

mein erstes Problemm ist: Wie stellt man ein, dass ein Makro beim öffnen einer Datei startet?

Das zweite: Der Makro soll in einer Dokumentenvorlage sein. Beim erstellen einer neuen Datei soll der Makro starten, wenn man aber die daraus entstandene Datei ein weiteres Mal öffnet (man hat diese Datei vorher also irgendwo gespeichert) dann soll der Makro nicht öffnen.

Ach ja ich erstelle die Datei zwar in WORD XP, aber sie soll auch auf älteren Versionen (98) laufen.

Gruß

Malte

Hallo,

Hallo,

mein erstes Problemm ist: Wie stellt man ein, dass ein Makro
beim öffnen einer Datei startet?

Kenne Word XP nicht, aber in den anderen Word-Versionen hies das Makro „Autoopen“

Generell gibt es Autoexec, Autoopen und Autoclose-Makros. Diese Makros dürfen aber nur in der jeweiligen Dokumentenvorlage gespeichtert sein. Wenn eins dieser Makros global in der Normal.Dot gespeichert wird, wird es immer (!!) beim Öffnen einer neuen Vorlage ausgeführt. Dies kann zu sehr unerwünschten Ergebnissen führen.

Das zweite: Der Makro soll in einer Dokumentenvorlage sein.
Beim erstellen einer neuen Datei soll der Makro starten, wenn
man aber die daraus entstandene Datei ein weiteres Mal öffnet
(man hat diese Datei vorher also irgendwo gespeichert) dann
soll der Makro nicht öffnen.

Mmmh, blöd.

Ich gehe mal davon aus, Du öffenst eine Dokumentenvorlage mit Fomularfeldern. Nachdem das letzte Formularfeld verlassen wurde, speichert ein Makro die Vorlage als ABC.doc. Diese Datei wird automatisch geschlossen.

Jetzt ist immer noch die alte Dokumentenvorlage geöffnet.

Kein Problem, diese per Makro oder per Hand zu schliessen.

Mit diesem Makroteil

on erroer goto fehler
open „abc.doc“ ’
goto ende
fehler: 'hier Code eingeben
ende:
close

bewirkt man, dass geprüft wird, ob eine Datei vorhanden ist. Falls ja, wird diese geöffnet, sonst wird der Programmteil nach fehler: ausgeführt.

Unter Programmierern sind solche Schleifen zwar verpönt, aber mir ist das Banane.

Bitte beachten, hier handelt es sich um Code aus Word6.0 !!

Ach ja ich erstelle die Datei zwar in WORD XP, aber sie soll
auch auf älteren Versionen (98) laufen.

Gruß

Malte

Hallo,

danke für deine Antwort, aber ich muss leider sagen, dass ich damit nicht weiter gekommen bin.
Ich habe keinen Autoopen Makro gefunden. Auch die VBA-Hilfe konnte mir nichts ähnliches zeigen.
Wie funktioniert das denn? Gibt es dafür Quellcode und wie sieht der aus?

Die Vorlage sieht im Moment so aus, dass sich beim erstellen eines Dokumentes eine Maske (UserForm) öffnet, in der einige Eingaben getätigt werden. Diese werden dann an entsprechender Stelle in den Text gebunden.
Danach soll das Dokument per Hand (oder Makro) gespeichert werden.
Wenn das Dokument dann später geöffnet wird, soll es garnicht mehr verändert werden, nur noch zum lesen oder drucken da sein.

Ich hoffe ich habe mein Vorhaben ausreichend beschrieben und du kannst mir weiterhefen.

Gruß
Malte

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

danke für deine Antwort, aber ich muss leider sagen, dass ich
damit nicht weiter gekommen bin.
Ich habe keinen Autoopen Makro gefunden. Auch die VBA-Hilfe
konnte mir nichts ähnliches zeigen.
Wie funktioniert das denn? Gibt es dafür Quellcode und wie
sieht der aus?

Die Vorlage sieht im Moment so aus, dass sich beim erstellen
eines Dokumentes eine Maske (UserForm) öffnet, in der einige
Eingaben getätigt werden. Diese werden dann an entsprechender
Stelle in den Text gebunden.
Danach soll das Dokument per Hand (oder Makro) gespeichert
werden.
Wenn das Dokument dann später geöffnet wird, soll es garnicht
mehr verändert werden, nur noch zum lesen oder drucken da
sein.

Ich hoffe ich habe mein Vorhaben ausreichend beschrieben und
du kannst mir weiterhefen.

Gruß
Malte

Hallo,

Du kannst ein Makro ja unter jedem beliebigen Namen erstellen/aufzeichnen. Nur eben die Bezeichungnen Autoopen, Autonew (nicht Autoexec) und Autoclose sind sozusagen reserviert und führen entsprechen des Namens die im Makro vorgegebenen Programme aus.

autoopen führt den Programmtext des Makros beim Öffen (open) der Datei aus

autoclose beim Schließen

autonew im Grunde wie autoopen

Das hört sich kompliziert an, ist aber ganz einfach. Du darfst nur nie vergessen, dass das Makro nur in einer, nämlich der aktuellen DOT gespeichert wird.

Der Unterschied:

Du schreibst ein Makro, das eine Eingabe erfordert und dann ein Dokument öffnet, in das die Daten der Eingabe eingefügt werden.

Wenn dies ein Autonew-Makro ist und in der Normal.dot statt in der abc.dot der Datei gespeicht wird, wird bei jedem Aufruf irgend eines Dokumentes (!!) dieses Makro ausgeführt. Das ist eben ein globales Makro. Passiert nicht, wenn das Makro nur in der abc.dot gespeichert ist.

Nun zum technischen:

Du erstellst ein Formular (von einer Maske rate ich ab, benutze doch einfach Formularfelder)

Du erstellst ein Makro, am besten über die Aufzeichnungsfunktion, in dem Du das Formular wie vorgesehen speicherst. Nenn es einfach „speichern“

Im ungeschützten (!) Formular nun ein Doppelklick auf das letzte (!)Formularfeld. In der Dialogbox sollte links unten stehen „Makro ausführen bei“, dann sind da die Felder „Ereignis“ und „Beenden“.
Hier klickst Du in das Feld „Beenden“ und siehst den Vorschlag „speichern“ oder wie Du das Makro genannt hast. Dieses übernimmst Du.

Danach die Vorlage schützen und speichern. Datei schließen.

Wenn Du jetzt über Datei-neu-abc.dot aufrufst und spasseshalber durch alles Formularfelder „hindurchhangelst“ wird nach dem Verlassen des letzten Formularfeldes die abc.dot unter dem gewünschten Namen speichert.

Mit Alt-D-C (2 mal hintereinander) kannst Du das Dokument verlassen.

Beachte bitte, dass nach erneutem Aufruf von abc.dot und dem Ausfüllen die alte Datei überschreiben wird. Falls dies nicht gewünscht wird, muss das speichern-Makro etwas geändert werden.

Gruss

Andreas