Niewidoczne drukowanie dokumentów Word
by vbatools 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.