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