Word 2007: Legacy-Formular (geschützt) und Button

Hallo,

ich möchte in Word 2007 ein Dokument als Vorlage erstellen (Dateityp .dot!). In dieser Vorlage findet man verschiedene Texteingabefelder, die mit den Legacy-Textfeldern erstellt wurden. Damit man diese erst verwenden kann und damit der Anwender später nicht die ganze Vorlage verhunzt, wird das Formular ordnungsgemäß geschützt („Dokument schützen“). Gleichzeitig soll dem Benutzer ein Button zum Senden des Worddokuments an die Hand gegeben werden.

Das Problem, das dabei aber auftritt, ist: Wenn ich auf dieser Wordvorlage ein neues Dokument erstelle (Doppelklick auf dot-Datei), verliert der Button seine Funktion!

Nach einigem Herumprobieren hat sich wohl ergeben, dass das mit dem Dokumentenschutz zusammenhängt, denn, wenn der in der Vorlage nicht aktiviert ist, kann der Button auch seinen VBA-Code ausführen. Ist dieser aber aktiviert, passiert gar nichts.

Kann man dies irgendwie umgehen? Habe ich etwas falsch gemacht? Oder ist das oben Beschriebene gar nicht erst möglich mit Word 2007?

Wichtig ist aber auch, dass die Kompatibilität zu Office 2003 gewahrt wird (daher die Abspeicherung im .dot-Format).

Ich wäre dankbar, wenn ihr mir dabei helfen könntet, denn ich komme an dieser Stelle nicht weiter.

Mit freundlichen Grüßen,
fuenf_punkt_eins

Hallo fuenf_punkt_eins,

ich hab unter Word 2010 mal ein kleines Userform mit Legacy-Formularfeldern und einer Active-X-Schaltfläche im Dokument zum Senden nachgebaut.

Die Schaltfläche bleibt auch aktiv wenn der Dokumentschutz mit erlaubter Formulareingabe aktiviert wird.
Der folgende Code legt zum Beispiel eine Mail mit dem Dokument als Anlage an, die dann im E-Mail-Programm weiter bearbeitete werden kann.

'Erstellt unter Word 2010
Private Sub CommandButton1\_Click()

 Application.Options.SendMailAttach = True
 ActiveDocument.SendMail

End Sub

Ob dies auch unter Word 2003 funktioniert weiss ich nicht. Das kann ich nicht testen.

Generell muss man beachten, dass in geschützten Dokumenten verschiedene Aktionen nicht möglich sind. Daher wäre es interessant wie der Code aussieht, der mit der Schaltfläche gestartet werden soll.

Ich gehe mal davon aus, dass auf den Rechnern, auf denen die Vorlage benutzt werden soll, die Makroschutzoptionen/vertrauenswürdigen Ordner so eingerichtet sind, dass die Makros auch aktiviert werden können.

Gruß
Franz

Hallo Franz,

danke für deine Lösung.

Ich habe es bei mir ausprobiert, aber es klappt auch nicht unter den gegebenen Voraussetzungen (Office 2007, dot-Format, Schreibschutz).

Eventuell liegt es daran, dass du Office 2010 benutzt.

Das Makro wird von Word nicht blockiert. Word ist, zumindest bei mir, so eingestellt, dass es mich benachrichtigt, wenn ein Makro geblockt wird. Dies lässt sich dann ja auch über denselben Dialog ausführbar machen.

Ich habe jetzt aber eine Ausweichlösung gefunden:
Statt eines Commandbuttons habe ich einfach ein Legacy-Textfeld genommen. Wenn das Textfeld aktiviert wird, wird dann automatisch das Mail-Makro ausgeführt. Damit fungiert das Textfeld quasi als Button. Nachteil: Wenn man mit TAB auf das Feld kommt, wird ebenfalls das Makro ausgeführt.

Mit freundlichen Grüßen,
fuenf_punkt_eins

Hallo 5.1,

Ich habe es bei mir ausprobiert, aber es klappt auch nicht
unter den gegebenen Voraussetzungen (Office 2007, dot-Format,
Schreibschutz).
Eventuell liegt es daran, dass du Office 2010 benutzt.

ich habe Word 2007 aber Word ist nicht so mein Ding.
Magst du mir mit dem obersten Link in FAQ:2606 diese .dot hochladen?
Am besten mit deinem Button der wohl nicht funktioniert bei
Blattschutz und auch mit deiner Ausweichlösung.

Das Makro wird von Word nicht blockiert. Word ist, zumindest
bei mir, so eingestellt, dass es mich benachrichtigt, wenn ein
Makro geblockt wird. Dies lässt sich dann ja auch über
denselben Dialog ausführbar machen.

Wo hast du da was eingestellt?

Ich habe jetzt aber eine Ausweichlösung gefunden:
Statt eines Commandbuttons habe ich einfach ein
Legacy-Textfeld genommen. Wenn das Textfeld aktiviert wird,
wird dann automatisch das Mail-Makro ausgeführt. Damit
fungiert das Textfeld quasi als Button. Nachteil: Wenn man mit
TAB auf das Feld kommt, wird ebenfalls das Makro ausgeführt.

Jetzt nur angedacht, wie wäre es du weist dieses Mail-Makro einer
Tastenkombination zu oder einem Symbol in der Schnellstartleiste?

Gruß
Reinhard

Hallo,

Tschuldige, dass es ein wenig gedauert hat.

Hochgeladene Datei: http://www.file-upload.net/download-4517361/test.dot…
Sollte das nicht funktionieren, bitte melden.

Wo hast du da was eingestellt?

Wenn du in Word 07 ein Makro mit aktiven Inhalten öffnest, fragt es in der Regel, ob diese Inhalte ausgeführt werden sollen. Außerdem kann man das im ‚Vertrauensstellungscenter‘ einstellen. Beides habe ich gemacht.

Jetzt nur angedacht, wie wäre es du weist dieses Mail-Makro
einer
Tastenkombination zu oder einem Symbol in der
Schnellstartleiste?

Das habe ich auch schon angedacht, aber das fand ich scheiße. Tastenkobminationen muss man dem Anwender erstmal beibringen und in die Schnellstartleiste schaut ja auch kaum einer drauf. Das sind so Sachen, die muss man dem Anwender dann ‚beibringen‘.

http://www.file-upload.net/download-4517361/test.dot…

Jetzt nur angedacht, wie wäre es du weist dieses Mail-Makro
einer
Tastenkombination zu oder einem Symbol in der
Schnellstartleiste?

Das habe ich auch schon angedacht, aber das fand ich scheiße.
Tastenkobminationen muss man dem Anwender erstmal beibringen
und in die Schnellstartleiste schaut ja auch kaum einer drauf.
Das sind so Sachen, die muss man dem Anwender dann
‚beibringen‘.

Hallo 5.1,

wie wäre es mit einer Userform die nur einen Commandbutton beinhaltet?

Gruß
Reinhard

Das wäre am Ende ja wieder nur eine Ausweichlösung. Machbar wäre es und sicherlich nicht verkehrt.

Aber gibt es denn keine Möglichkeit, das Ganze doch so zu realisieren, wie ursprünglich angedacht, d. h. mit dem Button auf dem Blatt?
Denn das würde mich eigentlich noch brennend interessieren, ob des denn möglich wäre und wenn ja wie - oder nicht.
Auch solche Ergebnisse sind Ergebnisse. :smile:

Hallo 5.1,

das der Schaltfläche unter ThisDocument zugeordnete Makro muss als „Private Sub“ ausgewiesen werden, dann klappt es.

Nachdem du das gemacht hast funktioniert der Button, aber deine Alternativ-Lösung geht nicht mehr :smile:
Makros, die beim Betreten/Verlassen von Formularfeldern ausgeführt werden sollen müssen Public sein.

Gruß
Franz

Private Sub CommandButton1\_Click()
 MsgBox ("Hello!!")
End Sub

Gruß
Franz

Hallo,

ich bedanke mich sehr herzlich für deine Hilfe. Ich gehe mal davon aus, dass es klappt. Bei der nächsten Gelegenheit werde ich es ausprobieren. :smile:

Mit freundlichen Grüßen,
5.1