689516

Makrokomfort ohne Sicherheitsrisiken

Bei bestimmten, häufig benötigten Word-Dokumenten wäre es praktisch, beim Öffnen gleich automatisch eine Aktion auszuführen. Einfaches Beispiel: eine Tagebuch- oder Notizendatei, in die stets automatisch das aktuelle Datum und die Zeit eingefügt werden soll. VBA sieht hierfür die Autoopen-Methode vor. Die funktioniert allerdings nur, wenn Sie unter "Extras, Makro, Sicherheit" die Stufe "Niedrig" einstellen. Und das bedeutet den Verzicht auf den Makrovirenschutz. Microsofts Office-Komponenten lassen sich weitestgehend von außen steuern. Wir zeigen Ihnen, wie es funktioniert.

Anforderung:

Profis

Zeitaufwand:

Mittel

Problem:

Bei bestimmten, häufig benötigten Word-Dokumenten wäre es praktisch, beim Öffnen gleich automatisch eine Aktion auszuführen. Einfaches Beispiel: eine Tagebuch- oder Notizendatei, in die stets automatisch das aktuelle Datum und die Zeit eingefügt werden soll. VBA sieht hierfür die Autoopen-Methode vor. Die funktioniert allerdings nur, wenn Sie unter "Extras, Makro, Sicherheit" die Stufe "Niedrig" einstellen. Und das bedeutet den Verzicht auf den Makrovirenschutz.

Lösung:

Microsofts Office-Komponenten lassen sich weitestgehend von außen steuern. Sie können daher die gewünschte Aktion durch ein VB- oder J-Script an Word, Excel oder Powerpoint weitergeben. Der Makrovirenschutz hat hier selbst bei der höchsten Stufe keine Einwände, weil das Dokument selbst kein Makro enthält.

Unser einfaches Script :pcwTagebuch.VBS soll nur das Prinzip demonstrieren: Jeder Doppelklick auf das Script fügt in die Datei "c:\tagebuch.doc" am Ende eine neue Zeile mit Datum und Zeit ein. Dabei spielt es keine Rolle, ob Word aktuell läuft oder nicht, ob die Datei bereits existiert oder nicht, und ob die Datei zufällig bereits geladen ist: Sie erhalten immer die ausgewählte Datei - und zwar mit dem Eingabefokus in der Zeile unterhalb des neuen Datums- und Zeit-Eintrags. Die hier vorgeschlagene Methode hat also neben dem Sicherheitsaspekt einen zweiten Vorteil: Anders als mit einem Autoopen-Makro funktioniert sie auch dann, wenn die Datei bereits geöffnet ist.

Falls Sie dieses Tagebuchbeispiel nützlich finden, sollten Sie lediglich den vorgegebenen Dateinamen "c:\tagebuch.doc" in Zeile 2 des Scripts anpassen und anschließend eine Verknüpfung zum VB-Script anlegen. Wenn Sie das Prinzip interessiert, Sie es aber für andere Aufgaben nutzen möchten, sollten Sie insbesondere Zeile 2 beachten: Die undokumentierte Syntax

GetObject(,"Word.Application")

mit führendem Komma erlaubt den Zugriff auf eine bestehende Instanz des Objekts. Mit jeder anderen "GetObject"-Syntax würden Sie Word ein zweites Mal starten. Das ist nicht nur unnötig, sondern fehlerträchtig, falls die gewünschte Word-Datei bereits in einer anderen Instanz läuft.

0 Kommentare zu diesem Artikel
689516