Discussion:
Close ohne Speicher-Abfrage
(zu alt für eine Antwort)
Frank Günther
2006-08-31 12:51:48 UTC
Permalink
Hallo Newsgroup!

Ich möchte ein bislang ungesichertes Dokument, das also als
"Dokument1" angezeigt wird und nur 1 Zeichen (= Absatzmarke) enthält,
schließen, OHNE daß die Abfrage "Speichern unter" angezeigt wird und
bedient bzw. abgebrochen werden muß.

Mit
ActiveDocument.Close False
bzw. mit
ActiveDocument.Saved = True
ActiveDocument.Close
klappt das leider nicht.

Gibt's da einen Trick?
Danke für Hinweise!

Frank Günther
Christian Freßdorf
2006-08-31 13:03:41 UTC
Permalink
Hallo Frank,
Post by Frank Günther
klappt das leider nicht.
Meldung?
Von wo wird es aufgerufen?

Hier klappt es aus einer Vorlage heraus.
--
Gruß Christian
~~~~~~~~~~~~
Antworten / Rückmeldungen nur in die NG!
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)
unknown
2006-08-31 14:39:25 UTC
Permalink
Post by Frank Günther
Hallo Newsgroup!
Ich möchte ein bislang ungesichertes Dokument, das also als
"Dokument1" angezeigt wird und nur 1 Zeichen (= Absatzmarke) enthält,
schließen,
Was meinst du nun eben mit _schließen_?

Soll dieses leere Dokument (dies Absatzmarke wäre mehr als eine
Container für Formatierungsbefhele zu verstehehn und dit deswegen nicht
löschbar) als "Dokument1.Doc" *gespeichert* werden? Dann wäre dies doie
Lösung:
ActiveDocument.Close (True)

Oder willst du ein ungewollt angelegtes Leerdokument *ungesichert* nur
einfach loswerden?
ActiveDocument.Close (False)
würde das bewirken.
Post by Frank Günther
OHNE daß die Abfrage "Speichern unter" angezeigt wird und
bedient bzw. abgebrochen werden muß.
Mit
ActiveDocument.Close False
Sollte ohne die Klammern nicht laufen, aber soweit wäre es schon das
gewesen was du wohl wolltest ("einfach nur ungestört loswerden").
Post by Frank Günther
bzw. mit
ActiveDocument.Saved = True
Obacht! Das setzt eine Eigenschaft des Dokumentes (und mehr nicht). Für
Word wurde diese Datei danach schon mal gespeichert, die zugehörige
Flagge wurde gehisst. Das kann man in bestimmten Situationen auswerten.
ActiveDocument.Save [ohne das ..ed!]
würde ganz normal wie Datei/Schließen wirken und bei unbenannten
Dokumenten einen Namen anfordern. Das aber wolltest du ja nicht :-)
Post by Frank Günther
ActiveDocument.Close
Wieder ganz normal wie Datei/Schließen - wie oben.
--
Eric March

Kenne die Vergangenheit. In der Unwissenheit über die Vergangenheit
liegt das Verderben der Zukunft.
"Die Geschichte ist der beste Lehmeister - mit den unaufmerksamsten
Schülern." Indira Gandhi
Frank Günther
2006-08-31 20:58:46 UTC
Permalink
Hallo Christian, hallo Eric,

also: ich habe ein FileSave-Makro in einem Add-In, das bestimmte
Varianten beim Speichern ausführt. Das klappt alles. Nur das einfache
"Loswerden" klappt nicht:

If Left(ActiveDocument.FullName, 8) = "Dokument" And
ActiveDocument.Characters.Count = 1 Then
ActiveDocument.Close (False)
End If

Die .Close - Zeile provoziert immer die Speichern-unter- Maske

Auch mit ActiveDocument.Close (False) mit Klammer. Egal ob ich
Speichern, Speichern-unter, oder einfach Schließen anklicke: für das
ungespeicherte Dokument1 wird immer die Speichern-unter-Maske geöffnet
- was ich mir eben gerne ersparen möchte. Es soll einfach
ungespeichert im Orkus verschwinden.

Fällt euch dazu noch was ein?
Danke!
Frank
Thomas Gahler
2006-09-01 04:54:28 UTC
Permalink
Hallo Frank
Post by Frank Günther
also: ich habe ein FileSave-Makro in einem Add-In, das bestimmte
Varianten beim Speichern ausführt. Das klappt alles. Nur das einfache
Zuerst wäre mal die Frage zu klären, weshalb denn bei einem neuen und leeren
Dokument überhaupt die schöe Frage kommt, das ist nämlich normalerweise
nicht der Fall. Aber das ist egla, das kannst du dir selber wohl besser
beantworten.
Post by Frank Günther
If Left(ActiveDocument.FullName, 8) = "Dokument" And
Um sicher zu gehen ob du ein ungespeichertes Dokument hast fragt man
normalerweise dessen Pfad oder Speicherdatum ab.

(ungetestet)
- if len(trim$(activedocument.path)) = 0 then
activedocument.saved = true
activedocument.close
end if

Das sollte klappern
Post by Frank Günther
Auch mit ActiveDocument.Close (False) mit Klammer.
Die bedeutung der Klapper bei einem Argument ud dem Aufruf einer Methode ist
ja uch ws anderes. Es geht hier um die überweisung ByVal oder ByRef und das
kommt ja in deinem Fall wirklich nciht drauf an.
Post by Frank Günther
Egal ob ich
Speichern, Speichern-unter, oder einfach Schließen anklicke: für das
ungespeicherte Dokument1 wird immer die Speichern-unter-Maske geöffnet
- was ich mir eben gerne ersparen möchte. Es soll einfach
ungespeichert im Orkus verschwinden.
Wennich dich richt verstehe, also auch wenn du Datei / Schliessen anklickst?
Na dann mach dich mal auf die Suche. Da fummelt dir irgend jemand bzw.
irgend was dazwischen....
--
Thomas Gahler
MVP für WordVBA
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)

- Windows XP (SP2), Office XP (SP3)
Frank Günther
2006-09-01 07:53:48 UTC
Permalink
Hallo Thomas!
Post by Thomas Gahler
Wennich dich richt verstehe, also auch wenn du Datei / Schliessen anklickst?
Na dann mach dich mal auf die Suche. Da fummelt dir irgend jemand bzw.
irgend was dazwischen....
Exakt! Das war's! Da hat was dazwischengefummelt.
Hätt ich ohne Deinen Hinweis nicht bemerkt. Danke!

Frank

moon
2006-08-31 20:51:54 UTC
Permalink
Ja, es gibt einen Trick:

Application.DisplayAlerts = False
ActiveDocument.Close
Application.DisplayAlerts = True




"Frank G�nther" <***@t-online.de> schreef in bericht news:***@m79g2000cwm.googlegroups.com...
Hallo Newsgroup!

Ich möchte ein bislang ungesichertes Dokument, das also als
"Dokument1" angezeigt wird und nur 1 Zeichen (= Absatzmarke) enthält,
schließen, OHNE daß die Abfrage "Speichern unter" angezeigt wird und
bedient bzw. abgebrochen werden muß.

Mit
ActiveDocument.Close False
bzw. mit
ActiveDocument.Saved = True
ActiveDocument.Close
klappt das leider nicht.

Gibt's da einen Trick?
Danke für Hinweise!

Frank Günther
Loading...