22. november 2007 - 15:31Der er
12 kommentarer og 1 løsning
Tekstboks skal ikke udskrives
Jeg leder efter en vba løsning til at undgå at en tekstboks i dokumentet bliver udskrevet.
At deaktivere tegnobjekter under indstillinger\udskriv er ikke en løsning jeg kan bruge, da indstillingen følger brugeren og ikke dokumentet. Mange brugere skal benytte dette dokument.
Jeg har prøvet vba før, men ikke i word. Jeg har leget lidt med et modul der starter med sub filerudskriv(), men den bliver ikke aktiveret ved udskrivning.
jeg har lagt koden i thisdocument under project, men jeg synes ikke jeg kan få det til at virke. Jeg tester ved at vælge vis udskrift, burde tekstboxen ikke være væk her?
OK. Det er desværre lidt mere omstændelige end som så, men hvis du følger denne vejledning, burde det virke. Dog først ved udskrift til printer - ikke i Vis Udksrift.
1: Opret et helt almindeligt modul i det relevante dokument, ikke i notrmal.dot. I dette modul lægger du denne kode:
Dim x As New class1 Sub Register_Event_Handler() Set x.app = Word.Application End Sub
Opret dernæst et klassermodul. Dette skal hedde Class1. Hedder det ikke det, skal du rette første linien ovenfor til det, dit klassemodul hedder. I klassemodulet ligger den kode:
Public WithEvents app As Word.Application
Private Sub app_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean) Options.PrintDrawingObjects = False ActiveDocument.PrintOut Options.PrintDrawingObjects = True Cancel = True End Sub
Endelig skal du i ThisDocument lægge denne kode:
Private Sub Document_Open() Call Register_Event_Handler End Sub
Gem så dit dokument. Luk det, åbne det igen, og se om ikke det virker.
Det er testet i dag med én dags forsinkelse. Jeg har dog 2 spørgsmål og hvis det er nødvendigt kan jeg godt oprette dem som nye spørgsmål:
1) Når man trykker ctrl + p, kan man så gøre det så man stadig får vist dialogboksen for print? 2) Jeg har læst i tidligere indlæg at hvis der er flere bakker i printeren, så kan man ikke programmere den til at skifte bakke, fordi det ligger udenfor vba. Er det rigtigt?
1) Nej, det kan man ikke. Ovenstående funktion "overtager" printfunktionen. Den kan muligvis godt om programmeres, så den også vider printdialogboksen, men i så fald vil det være hver gang - også når du klikker på printknappen.
2)Det tror jeg du har ret i. Printerbakken styres af printdriveren, og den kan ikke håndteres gennem VBA.
Jeg har ikke lige adgang til Word nu, men prøv at rette koden i klassemodulet til
Public WithEvents app As Word.Application
Private Sub app_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean) Options.PrintDrawingObjects = False Application.Dialogs(wdDialogFilePrint).Show Options.PrintDrawingObjects = True
End Sub
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.