Nun mit folgendem Problem: Ich benutze VB6.0 und MS Office Word 2003 und muss die Templatepfadangaben in diversen Dokumenten mit Codeanweisungen automatisch anpassen.
Das Ersetzen der Pfade funktioniert auch soweit. Nur wird die Schlaufe der abzuarbeitenden Dokumente immer durch fehlerhafte Dokumente (schreibgeschützt, keine Rechte, usw) unterbrochen. Diese kann ich ja bequem mit ‚On Error‘ abfangen, aber danach lassen sich die Dokumente nicht mehr ohne einen Speicherdialog schliessen.
Es wäre genial, wenn ich diesen Dialog unterdrücken könnte. Auf der Suche nach einer Lösung bin ich auf ‚DisplayAlerts‘ gestossen, habe aber leicht den Verdacht, dass dies bei Word nicht so recht funktioniert (zumindest bei mir nicht).
Hat jemand Erfahrung mit solch einem Problem? Wie kann ich diesen Speicherdialog (allgemein die Warnungsmeldungen) von Word ausschalten/unterdrücken?
Danke schon jetzt an jene, die sich die Zeit genommen haben, dies durchzulesen
Wenn Du Rechte auf dem Verzeichnis hast, kannst Du vorm Öffnen der Dokumente via SetAttr die benötigten Attribute (R/W) setzen. Wenn Rechte nicht passen, wirst Du unter der gleichen Datei nichts ändern können. Wäre ja auch zu einfach, so die Windows-Sicherheitsmechanismen zu umgehen. Wenn jemand anderes aber die Datei geöffnet hat, wird Dir auch das nicht viel helfen. Dann kannst Du die Datei eben nicht zu diesem Zeitpunkt an diesem Ort unter diesem Namen speichern.
Als Alternative speichere doch die Dateien in ein anderes Verzeichnis (z. B. Unterverzeichnis) und kopiere/verschiebe die Dateien am Ende auf einen Rutsch, ggf. mit entsprechenden (Netzwerk-)Rechten.
Danke für deine Tipps. Das Problem liegt jedoch eher darin, dass eine Systemmeldung (Speicherdialog) erscheint beim Schliessen eines Word Dokumentes. Diese Meldung unterbricht dann auch den ganzen Ablauf des Programmes, was dazu führt, dass ein Benutzer die Meldung wegklicken muss, damit das Programm weitergeht.
Mit Applications.DisplayAlerts könne man ja die Systemmeldungen unterdrücken, was bei mir jedoch nicht funktioniert. Gibt es da eine Alternative?
Danke für deine Tipps. Das Problem liegt jedoch eher darin,
dass eine Systemmeldung (Speicherdialog) erscheint beim
Schliessen eines Word Dokumentes. Diese Meldung unterbricht
Was ist denn Dein Code? Und wann kommt die Frage? Wenn Du ein Dokument schließt, kannst Du übrigens auch mitgeben, dass nicht gespeichert werden soll…
Den Code, den ich benutzt habe, damit die Systemmeldungen nicht mehr angezeigt werden ist folgender:
Dim objDoc As Object
Set objDoc = CreateObject(„Word.Application“)
objDoc.Documents.Application.DisplayAlerts = -1
Leider erscheinen danach immernoch Systemmeldungen. Es erscheint jedoch keine Fehlermeldung beim Kompilieren, den Befehl „DisplayAlerts“ wird also erkannt, jedoch irgendwie nicht korrekt verarbeitet.
Oder überschau ich da etwas?
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
objDoc.Documents.Application.DisplayAlerts = -1
Leider erscheinen danach immernoch Systemmeldungen. Es
Was laut Word-VBA-Hilfe soweit klar ist: wdAlertsAll=-1, also kommen alle Meldungen. Setz’ den Wert mal auf 0 (=wdAltersNone).
Interessanter wäre aber der Code, der Dateien öffnet, verändert und wieder schließt.
Und noch was: Füge mal Microsoft Word zu Deinen Verweisen hinzu, dann kannst Du einfacher statt einem Object ein Word.Application-Objekt erzeugen und hast direkt beim Programmieren via Intellisense immer die möglichen Methoden und Eigenschaften parat.
Wenn ich ein Dokument ohne vorhandene Dokumenteigenschaften dann schliessen möchte, erscheint der Dialog um diese Eigenschaften zu definieren. Das möchte ich ja verhindern mit dem DisplayAlerts, was aber einfach ignoriert wird
Wenn ich ein Dokument ohne vorhandene Dokumenteigenschaften
dann schliessen möchte, erscheint der Dialog um diese
Eigenschaften zu definieren. Das möchte ich ja verhindern mit
dem DisplayAlerts, was aber einfach ignoriert wird
Um was für Dokumenteigenschaften geht’s denn hier? Welcher Dialog kommt, und wann? Beim Save? Oder beim Close? Oder beim Setzen des AttachedTemplate?