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 ;)

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...