PDA

Vollständige Version anzeigen : Frage - ganze Arbeitsmappe drucken


Olsen
25.10.2006, 15:40
Hallo,
ich benötige eine Funktion, die es mir ermöglicht, aus dem Filesystem oder der CMD heraus eine komplette Excelarbeitsmappe und nicht nur das erste Tabellenblatt zu drucken. Ich will also Excel nicht direkt öffnen. Hat jemand eine Idee?

Papelino
30.10.2006, 16:43
Hallo Olsen,

ich habe einen Lösungsvorschlag für Dich.

Folgendes VB-Script


'******************************************************
'* VBScript zum Drucken von Excel-Dokumenten *
'******************************************************
Option Explicit

Dim oArgs, ex, oDatei

Set oArgs = WScript.Arguments
Set ex = WScript.CreateObject("Excel.Application")

With ex
'Excel nicht anzeigen
.Visible = False
'Laden des Dokuments
.Application.Workbooks.Open(oArgs.Item(0))

' Dokument komplett ausdrucken
Set oDatei = ex.Sheets
oDatei.PrintOut

' Excel beenden
.Quit
End With

Set oArgs = Nothing
Set ex = Nothing
Set oDatei = Nothing


kopierst Du dir nach

C:\Dokumente und Einstellungen\{Name des Users}\SendTo

Dann kannst Du bequem die ausgewählte Exceldatei über das Kontextmenü "Senden an" an das Script senden. Von dort aus wird sie ausgedruckt. Excel wird zwar geöffnet ... allerdings bekommst du es nie zu sehen.

Olsen
31.10.2006, 08:13
Hallo Papelino,
Danke, das funktioniert.

problematix
08.03.2009, 11:24
Hallo,

funktioniert wirklich gut mit einer Datei.
Ich würde das gerne mit mehreren markierten Dateien gleichzeitig nutzen.
Leider ist die Anzahl der Dateien dabei immer mal anders.
Hat dafür jemand eine Erleuchtung.

Gruß
problematix

_anton_
12.03.2009, 21:48
Hallo problematix,

probier sowas:
<span style="font-family: Courier New,FixedSys;"><br><span style="color: #0000CC;">Dim</span> objArgs, fso, ex, i, WB, oDatei <br><span style="color: #0000CC;">Set</span> objArgs = WScript.Arguments <br><span style="color: #0000CC;">Set</span> fso = CreateObject(&quot;Scripting.FileSystemObject&quot;) &nbsp;<br><span style="color: #0000CC;">Set</span> ex = CreateObject(&quot;Excel.Application&quot;) &nbsp;<br><span style="color: #0000CC;">With</span> ex <br><span style="color: #009900;"> &nbsp;'Excel nicht anzeigen</span><br>&nbsp; .Visible = <span style="color: #0000CC;">False</span> <br>&nbsp; <span style="color: #0000CC;">For</span> i = 0 <span style="color: #0000CC;">To</span> objArgs.Count - 1 &nbsp;<br>&nbsp; &nbsp; <span style="color: #0000CC;">If</span> fso.fileexists(objArgs(i)) <span style="color: #0000CC;">Then</span> &nbsp;<br>&nbsp; &nbsp; &nbsp; <span style="color: #0000CC;">If</span> UCase(fso.GetExtensionName(objArgs(i))) = &quot;XLS&quot; <span style="color: #0000CC;">Then</span> &nbsp; &nbsp;<br><span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp;'Laden des Dokuments</span><br>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000CC;">Set</span> WB = .Application.Workbooks.Open(objArgs(i)) &nbsp;<br><span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp;' Dokument komplett ausdrucken</span><br>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000CC;">Set</span> oDatei = WB.Sheets <br>&nbsp; &nbsp; &nbsp; &nbsp; oDatei.PrintOut <br><span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp;'Dokument schliessen</span><br>&nbsp; &nbsp; &nbsp; &nbsp; WB.Close <span style="color: #0000CC;">False</span> &nbsp;<br>&nbsp; &nbsp; &nbsp; <span style="color: #0000CC;">End If</span> &nbsp;<br>&nbsp; &nbsp; <span style="color: #0000CC;">End If</span> &nbsp;<br>&nbsp; <span style="color: #0000CC;">Next</span> <br><span style="color: #009900;"> &nbsp;' Excel beenden</span><br>&nbsp; .Quit<br><span style="color: #0000CC;">End With</span> &nbsp;<br><span style="color: #0000CC;">Set</span> fso = Nothing &nbsp;<br><span style="color: #0000CC;">Set</span> ex = Nothing &nbsp;<br></span>

mfg Anton

problematix
20.03.2009, 19:20
Hallo Anton,

genau das was mir die tägliche Arbeit etwas erleichtert.

Tausend Dank
problematix