Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

in folgendem Code werden ausgewählte Dokumente geöffnet und gedruckt..

Wie kann ich nun ein geöffnetes Dokument inkl. der Anwendung wieder schließen?

Private Sub Command1_Click()

Dim MyObject, i As Integer

For i = 1 To File.ListCount

File.ListIndex = i - 1

Set MyObject = GetObject(File.Path & "\" & File.FileName)

Set MyApp = MyObject.application

MyApp.Visible = True

MyApp.Printout

Next i

End Sub

Wäre nett, wenn Ihr mir helfen könntet.

Danke & Gruß,

chris;-)

Geschrieben

Hi,

mit deiner Lösung wird zwar das Word-Dokument geschlossen, aber nicht Word selbst. Da Word aber nicht geschlossen wird, wird das nächste Dokument nicht richtig geöffnet.. Es wird dann nicht "Aktiv", und ich kann es nicht ausdrucken.

Jetzt müsste ich also noch wissen, wie ich:

-entweder Word richtig beende,

-oder wie ich das Dokument aktiviere, so dass ich drucken könnte.

Gruß,

Chris;-)

Geschrieben

OK - ich schreib hier noch mal die Fehlermeldung hin, die er mir ausgibt:

Run-time error '4605':

This method or property is not available because a document window is not active.

Wie aktiviere ich das geöffnete Dokument?

Is wichtig

Wenn mir jemand via PM seine eMail-Adresse zukommen lässt, schicke ich ihm das Projekt als ZIP-File zu.

Danke, Chris

Geschrieben

Hallo Chris,

versuch's mal mit

MyApp.Quit

bevor Du

Set MyApp = Nothing

setzt.

Ansonsten wäre es vielleicht ganz gut, vor dem Öffnen des Dokumentes abzufragen, ob Word schon geöffnet ist, bzw. ein Word-Objekt zu benutzen, z.B. so:

Dim WordObj As Word.Application

Und dann zum Prüfen, ob Word geöffnet ist:

' Ist Word geöffnet?

Set WordObj = GetObject(, "Word.Application")

' Wenn nicht

If Err = 429 Then

Set WordObj = New Word.Application

End If

Und zum Beenden:

WordObj.Quit

Set WordObj = Nothing

Bei Deiner Schleife mußt Du mal sehen. Ich habe jetzt nicht so viel Zeit, aber lass mich mal wissen, ob das geklappt hat. Mußt mal ein bißchen rumprobieren.

Viel Glück und LG,

Never :cool:

Geschrieben

Oder als Code:

if MyWord is nothing then

set myword = new word.application

else

//hier brauchst du nix zu machen, hast dein Objekt ja schon, oder einfach das:

set myword = nothing

set myword = new word.application

end if

so hast du auf jeden Fall Word als neue Instanz. Bei den Office Anwendungen ist es wichtig, sie erst ordentlich zu beenden (App.quit, oder app.close) am Besten auch das aktuelle Document auch zu machen.

Dann noch ein "set xx = nothing" und dann müßte es gehen ...

M., der die Problem sehr gut kennt ;)

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...