VBATools

Niewidoczne drukowanie dokumentów Word

by on Jul.04, 2011, under Excel, Porady, Word

W niektórych przypadkach potrzebujemy szybko wydrukować dokumenty Worda, które to wcześniej musimy otworzyć.

O ile wszystkie parametry drukowania mamy już ustawione (domyślna drukarka, marginesy etc.)  to wystarczy poniższym kodem wskazać plik aby bez otwierania MS Worda (otwieranie ukryte) i wysłać dokument na drukarkę.

Sub drukuj_doc_worda()
'MVP OShon from VBATools.pl
Dim wdApp As Object
Set wdApp = CreateObject("Word.Application")

 Dim FileName As Variant
 FileName = Application.GetOpenFilename( _
 filefilter:="Pliki Worda (*.doc*),*.doc*", _
 Title:="Wybierz plik do wydruku")

 If FileName = False Then
 MsgBox "Nie wybrano żadnego pliku!", vbExclamation, "VBATools.pl"
 Exit Sub
 End If
With wdApp
 .Visible = False
 .Documents.Open FileName:=FileName
 .Application.PrintOut
 .ActiveWindow.Close
End With
Set wdApp = Nothing
End Sub

Aby nie wskazywać plików do wydruku (o ile ma się ich więcej niż kilka) można posłużyć się pętlą pobierającą ich nazwy. I tak:

Sub drukuj_z_raportem()
'MVP OShon from VBATools.pl
Dim PPath$, buf$, r&: r = 2
PPath = "C:\Temp"
buf = Dir(PPath & "*.rtf")
 Cells(1, 1) = "plik ze scieżka"
 Cells(1, 2) = "wydrukowano"
 Cells(1, 3) = "data"
Do While Len(buf)
 'tu można wsadzić warunek co do nazewnictwa plików
 Cells(r, 1) = PPath & buf
 Cells(r, 2) = drukuj_doc_worda(Cells(r, 1))
 Cells(r, 3) = Now
 r = r + 1
buf = Dir
DoEvents
Loop
 Set plik = Nothing
 Set ob = Nothing
End Sub

Function drukuj_doc_worda(FileName As String) As Boolean
Dim wdApp As Object
Set wdApp = CreateObject("Word.Application")

With wdApp
 .Visible = False
 If Len(Dir(FileName, vbDirectory Or vbHidden Or vbSystem)) > 0 Then
 drukuj_doc_worda = True
 .Documents.Open FileName:=FileName
 .Application.PrintOut
 End If
 .ActiveWindow.Close
End With
Set wdApp = Nothing
End Function

Przy takich operacjach należy pamiętać iż oszczędność lasu jest w tym przypadku priorytetem. Zalecam więc zainstalowanie drukarki PDF.

(c) Shon Oskar – www.VBATools.pl

Wszelkie prawa zastrzeżone. Żadna część ani całość tego artykułu nie może być powielana ani publikowana bez zgody autora.

:, , , , ,

Leave a Reply

Recently Active Members

Profile picture of vbatools
Profile picture of Karol Stilger
Profile picture of Anorak
Profile picture of marcinmachalowski
Profile picture of Joanna Subik
Profile picture of programistaaccess
Profile picture of piotrpawlik
Profile picture of Emil Wasilewski
Profile picture of kicekpicek
Profile picture of coldfusion
Profile picture of Gosia Borzęcka
Profile picture of lukaszch
Profile picture of itadministracja
Profile picture of farbenia
Profile picture of Łukasz Kałużny
Profile picture of kabzinski
Profile picture of rtynski
Profile picture of leszekbetlinski
Profile picture of Iv
Profile picture of Justyna Spychała