08. oktober 2003 - 14:38Der er
6 kommentarer og 2 løsninger
WordXP VBA udskrive til en fil - hvordan ?
Jeg har meget ringe erfaring med VBA til Word, men er alligevel gået i gang med at designe en makro, som skal udskrive et Word-dokument til "printeren" Abobe Destiller (pdf-fil) og derefter lukke dokumentet.
Mit problem er, at jeg i VBA-hjælpen har fundet noget om "ActiveDocument.PrintOut" og "outputfilename", men det virker bare slet ikke ;-( Når jeg skriver følgende: Dim FilNavn As String FilNavn = "Børge" (eller hvad jeg nu har lyst til :-) ActiveDocument.PrintOut(outputfilename:=FilNavn) ... får jeg fejlmeldingen: "Expectet: ="
Hvis jeg så i stedet skriver: ActiveDocument.PrintOut outputfilename:=FilNavn ...ser det ud til at køre udmærket. Der bliver bare ikke produceret noget som helst.
Egentlig ville jeg jo helst have en prompt med mulighed for at bestemme sti og filnavn i hvert enkelt tilfælde.
Bemærk, at variablen "outputfilename" er skrevet med små bogstaver. Dette skyldes at VBA ikke kender udtrykket - som jeg har hentet fra VBA-hjælpen ?!?
Er der i Destiller ikke mulighed for at installere den som en "rigtig" printer, så man kan vælge den i ActivePrinter? ActivePrinter = "HP LaserJet 1200 Series PS" Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _ wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _ Collate:=True, Background:=True, PrintToFile:=False, PrintZoomColumn:=0, _ PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0
Adobe Destiller er skam en "rigtig" printer, som jeg i koden også har valgt med ActivePrinter = "Acrobat Distiller" - Det virker sådan set udmærket.
Men kodelinien: Application.PrintOut FileName:=FilNavn eller: Application.PrintOut FileName:="filnavn", Range:=wdPrintAllDocument, Item:= wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0 ...giver begge fejlen: "Run-time error 5121: Dokumentnavn eller sti er ugyldig"
Det gør heller ingen forskel om jeg bruger True eller False til udtrykket PrintToFile, ligesom det heller ikke gør nogen forskel om jeg bruger en variabel (f.ex. FilNavn) eller en fast tekst (f.ex. "FilNavn") til udtrykket FileName:=
Det skal vist være Outputfilename, ellers udskrives et dokument *fra* hard disken - det var min fejl i det første svar. Så jeg mener at dette er korrekt: Application.PrintOut FileName:="", OutputFilename :="Filnavnet" , Range:=wdPrintAllDocument, PrintToFile:= true
Tja - Joh Med "Application" i stedet for "ActiveDocument" og både FileName og OutputFilename, som du stefanfuglsang skitserer, får jeg da i det mindste ikke nogen Run-Time Error. Oven i købet kan jeg i Word's statuslinie se, at der bliver (baggrunds-)udskrevet nogle sider. ...Men: Der bliver ikke dannet nogen fil på nogen disk, som jeg bagefter kan finde (og bruge) Når jeg søger med Windows-søg efter pdf-filer, som er dannet i dag, får jeg ganske enkelt ingen hits. Hvor går det galt ?
Nå, jo - man skal selvfølgelig skrive hele stien i OutputFilename for at få dannet en fil, der kan findes igen.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.