PDA

Vollständige Version anzeigen : Makro aus Dokument, aber nicht aus dem Template öffnen


vbQuichote
21.07.2009, 12:11
Hallo zusammen,

ich habe leider weder mit der Forumssuche noch mit google "site:ms-office-forum.net" was passendes finden können. Vielleicht suche ich aber auch nur mit den falschen Begriffen, wenn es also schon einen Thread hierzu gibt, gerne her mit dem Link

Folgende Herausforderung:
Ich möchte erreichen, dass alle "User" die selben Formate verwenden und es keinen "Wildwuchs" gibt. Im Einsatz: WinXP, Office2003, es gibt aber auch schon ein paar Vista+Office2007 Benutzer.

Lösungsansatz:
Ich habe myTemplate.dot erstellt und ganz viele Formatvorlagen angepasst und den Dokumentschutz aktiviert. Damit die "User" sowas wie "fett" "kursiv" verwenden können, habe ich die deaktivierten Buttons nachprogrammiert (in VB) und in meiner Symbolleiste "myMakros" abgelegt. Die User sollen nun einfach auf das .dot doppelklicken und drauflosschreiben (mit den Einschränkungen und hoffentlich ohne "Wildwuchs").

Problem:
Wenn man ein Dokument (.doc) erstellt hat und abspeichert, ist immer "myTemplate.dot" verlinkt. Ist ja auch gut so, sonst gäbe es meine Makros nicht. Wenn ich jetzt aber ganz am Ende des Dokument-bearbeitens dafür sorgen möchte, dass _ALLE_ Makros gelöscht werden, kann ich im VBEditor (Alt+F11) nur das Modul "myMakro" im myTemplate.dot löschen.

Das will ich aber nicht, sonst würde das nächste Dokument, welches von myTemplate.dot abgeleitet wird, die Makros nicht enthalten. Ich möchte gerne _ausschließlich_ in dem .doc das Makro (oder die Verknüpfung oder wasauchimmer) entfernen. Das .dot Template soll nicht beeinflusst werden

Irgendeine Idee, was ich machen kann?

LG,
Don

vbQuichote
21.07.2009, 12:26
habe grade mal mit ein paar Sachen rumgespielt und mir ist noch ein zweites Problem begegnet

Wenn das Template myTemplate.dot verschoben/umbenannt/gelöscht wird, sind die Makros auch weg?!?
Sprich: Irgendwer nimmt sich myTemplate.dot, erstellt 10 Dokumente (.doc), denkt sich: Hm, ich schiebe myTemplate.dot mal von c:\...\...\verzeichnis1 nach c:\...\...\verzeichnis2. Oder er denkt der Name "supertemplate.dot" ist doch viel passender. Zwei Wochen danach ruft er bei mir an und beschwert sich "Ey, ich kann die Schrift nicht mehr >fett< machen" -- "Was hast du denn geändert?" -- "Ich habe nichts geändert" :mad:

Gibt es eine Möglichkeit, dafür zu sorgen, dass die ganzen Formatierungen, Makros, etc. vom Template in das .doc Dokument überführt werden?

peppi
21.07.2009, 12:27
Hallo Don,

welchen Grund gibt es eigentlich für Deinen Wunsch? Die Makros selbst sind nicht im Dokument sondern nach wie vor in der Vorlage (dot). Daher kannst Du sie natürlich auch nicht löschen. Was nicht da ist kann eben nicht gelöscht werden...

Der einzige Weg, der mir einfallen würde, wäre die Verbindung zur Vorlage zu ändern. Also von myTemplate. dot auf die Normal.dot - aber, wie schon gesagt, sehe ich da den Sinn nicht... Vielleicht kannst Du uns das mal erklären? Dann gibt es evtl. auch eine bessere Hilfe...
<br>

peppi
21.07.2009, 12:29
Hallo,

nun haben sich unsere Beiträge überschnitten... Zu Deinem zweiten Beitrag gibt es hier schon einige Themen. Suche einfach mal nach Beiträgen der User CHF und/oder Hotte, die haben das schon sehr oft erklärt, wie das mit den Makros / dem Code in Vorlagen und/oder Dokumenten ist...

Nach meinem Dafürhalten widersprechen sich Deine beiden Beiträge aber irgendwie... Oder hat mir jetzt nur die Sonne mein Hirn komplett weggebrannt? ;)
<br>

vbQuichote
21.07.2009, 13:13
Hallo Peppi,

ich hoffe, meine Wünsche widersprechen sich nicht. Allerdings kann ich mir gut vorstellen, dass ich langsam "betriebsblind" werde...

Ganz basal möchte ich erreichen, dass alle Dokumente vom Typ "Bericht" einheitlich aussehen, strukturiert sind, etc. Daher die Vorlage myBericht (oben noch myTemplate genannt).

Ferner will ich die User vor sich selbst schützen, daher habe ich den Dokumentschutz aktiviert und eine begrenzte Anzahl von Formatvorlagen zugelassen. Damit aber das "fett" Button geht, brauche ich ein Marko, weil "Dokument schützen" auch diese Buttons verbietet (nur konsequent). Ein paar AutoKorrektur Optionen stelle ich mit VB auch gleich noch aus.

Das habe ich auch alles schon realisiert.

Was jetzt als weitere Anforderung kommt, ist dass man z.B. die Dokumente unabhängig vom .dot bearbeiten und verschicken können soll. Und die erstellten .docs sollen dabei alle Logig in sich haben, da sicher mal ein paar DAUs die Vorlagen löschen/umbennen/die Makro daraus entfernen/... Das .doc soll auch letzendlich ganze ohne Makros versendet werden können, ohne für weitere Dokumente das Template zu verändern. (Makros machen sich grade bei Dokumenten, die das Unternehmen verlassen schlecht, wg. Virenscanner usw.)

Hoffe, jetzt wirds klarer...

LG,
Don

PS: Habe grade mal nach CHFs und Hottes Beiträgen geguckt, mir dämmert schon eine Lösung. Mal rubastenl... Wenns was neues oder eine Lösung gibt, schreib ich wieder

vbQuichote
21.07.2009, 16:00
So, hab mir jetzt mal was geschrieben, war auch eigentlich total einfach... :p

Ich biete den Benutzern einfach eine Funktion an, sich vom Template abzukoppeln. Dann kommt noch ein dicker Disclaimer dazu im Sinne von "wenn du hier drückst, gibts kein Support mehr. Du kommst auf die Hotline-Blacklist" ;)

Sub KillAllMakros()
' KillAllMakros Makro
' Hebt den Dokumentschutz auf, löscht die gesamte
' Makro-Funktionalität und entfernt die Verknüfpung zur
' Vorlage "Berichtstemplate"
If MsgBox("Disclaimer" & vbCrLf & vbCrLf & _
vbOKCancel, "Disclaimer") = vbOK Then
ActiveDocument.AttachedTemplate = ""
ActiveDocument.Unprotect
End If
End Sub

Für mich (erstmal) ausreichend, mal gucken, was der friendly-user Test so ergibt

Danke für die Unterstützung