Word-Datei schließen und wieder öffnen

Moderator: ModerationP

Word-Datei schließen und wieder öffnen

Beitragvon Tobias F. » 09. Okt 2019, 22:06

Hallo liebes Forum,

ich habe eine Frage, die mir die gängigen Suchmaschinen bislang nicht beantworten konnten. :-/

Und zwar geht es um Folgendes:

Auf Basis einer Word-Vorlage (.dotm) wird ein neues Dokument (*.docx) erstellt. In der Word-Vorlage existieren diverse Makros.

Das Dokument wird normal bearbeitet und abgespeichert. Nach der Speicherung werden dem Dokument über ein Makro noch weitere Angaben hinzugefügt. Das Dokument wird dann über ein Makro als PDF gespeichert.

Nun ist es so, dass ich das Word-Dokument nach PDF-Speicherung in den zuletzt gespeicherten Zustand versetzen möchte.

Also folgender Ablauf:

- Neues Dokument auf Basis einer Vorlage
- Dokument wird bearbeitet und abgespeichert
- weitere Angaben im Dokument über ein Makro aus *.dotm
- Speicherung als PDF über eim Makro aus *.dotm
- Dokument in den zuletzt gespeicherten Zustand versetzen

Ist so etwas mit der Methode:

Code: Alles auswählen
ActiveDocument.reload


möglich? Ich habe es ausprobiert und ich glaube der gewünschte Effekt tritt ein, doch nach erfolgtem Reload hängt sich Word nach ca. 3 Sekunden jedes Mal auf und schließt unverhofft das Dokument.

Vielleicht hat ja jemand eine Idee, woran das liegen kann? Oder jemand kennt eine andere Methode, die zum gewünschten Ziel führt? Freue mich auf Rückmeldungen. :-)

Grüße Tobias
Tobias F.
 

Re: Word-Datei schließen und wieder öffnen

Beitragvon knobbi38 » 09. Okt 2019, 22:41

Hallo Tobias,

schau mal in der OH nach, was die Funktion ActiveWindow.Reload() eigentlich macht.

Ulrich
knobbi38
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1396
Registriert: 02. Jul 2015, 14:23

Re: Word-Datei schließen und wieder öffnen

Beitragvon theoS » 10. Okt 2019, 21:24

Nope.
Du speicherst das Dok als docx, dann als pdf, dann schließt du das docx ohne weiter zu speichern und öffnest es wieder.
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4764
Registriert: 19. Apr 2008, 00:14

Re: Word-Datei schließen und wieder öffnen

Beitragvon knobbi38 » 10. Okt 2019, 21:48

@Theo,

dann solltest du ihm aber auch sagen, wo der Code ausgeführt werden sollte, der diese Aktionen auslöst, denn sich selbst "abschießen" sollte ja gerade nicht passieren.

Ulrich
knobbi38
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1396
Registriert: 02. Jul 2015, 14:23

Re: Word-Datei schließen und wieder öffnen

Beitragvon theoS » 10. Okt 2019, 22:15

Sollte ich?
Er ist ja offenbar schon ein wenig weiter, wenn er mit reload experimentiert.
Aber eigentlich nicht so schwierig selbst draufzukommen, oder?
Die sub setzt die Datei voraus und öffnet sie. ich habe hier bewusst eine *.dotm genommen, und diese geöffnet. Eine weitere Möglichkeit wäre auch, aus der *.dotm eine neue Datei zu generieren und diese dann einfach zu verwerfen. (oder die speichern und dann auf die mit dem Pfad und Namen drauf zuzugreifen)
Aber vom Prinzip ist es immer das gleiche. Dok holen, verändern, meinetwegen abspeichern, wieder verändern mit dem was nicht bleiben soll, speichern als pdf und dann schließen ohne zu speichern und wieder öffnen.
Code: Alles auswählen
Sub klu()
Dim dd1 As Document
Set dd1 = GetObject("D:\1##ForenFragen\Word\Speicherkram\alsPDFundWiederAufVorlagew.dotm")
dd1.Windows(1).Visible = True

dd1.Content.InsertAfter "Hier kommt ein Text, der kein Donald ist"


dd1.ExportAsFixedFormat OutputFileName:= _
        "D:\1##ForenFragen\Word\Speicherkram\alsPDFundWiederAuf.pdf", _
        ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
        Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=True, UseISO19005_1:=True

dd1.Close savechanges:=False
Set dd1 = GetObject("D:\1##ForenFragen\Word\Speicherkram\alsPDFundWiederAufVorlagew.dotm")
dd1.Windows(1).Visible = True

End Sub


Das wär dann ungefähr so:
Code: Alles auswählen
ub kluX()
Dim dd1 As Document, dd2 As Document, nomTeil As String, neoNom As String
Set dd1 = Documents.Add("D:\1##ForenFragen\Word\Speicherkram\alsPDFundWiederAufVorlagew.dotm", , wdDocument, True)
'dd1.Windows(1).Visible = True
dd1.Content.InsertAfter "Hier kommt ein Text, der kein Donald ist" & vbCrLf
nomTeil = "Test4"

neonam = "D:\1##ForenFragen\Word\Speicherkram\DingsBums" & nomTeil & ".docx"
dd1.SaveAs2 FileName:=neonam, fileformat:=wdFormatDocumentDefault

dd1.Content.InsertAfter "Hier kommt ein Text, der kein Trampeltier ist"

dd1.ExportAsFixedFormat OutputFileName:= _
        "D:\1##ForenFragen\Word\Speicherkram\DingsBums" & nomTeil & ".pdf", _
        ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
        Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=True, UseISO19005_1:=True

dd1.Close savechanges:=False
Set dd1 = GetObject(neonam)
dd1.Windows(1).Visible = True

End Sub
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4764
Registriert: 19. Apr 2008, 00:14


Zurück zu Word Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast