Avatar billede dane022 Seniormester
22. november 2007 - 15:31 Der 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.
Avatar billede jkrons Professor
22. november 2007 - 18:08 #1
Prøv med dette i ThisDocument:

Public WithEvents WordApp As Word.Application

Private Sub WordApp_DocumentBeforePrint()
'..din kode her
End Sub
Avatar billede dane022 Seniormester
22. november 2007 - 21:08 #2
Hvordan skjuler jeg tekstboxen?
Avatar billede jkrons Professor
22. november 2007 - 21:18 #3
En mulighed er at deaktivere tegeobjekter og så aktivere dem igen.

Det kan gøres med:

Public WithEvents WordApp As Word.Application

Private Sub WordApp_DocumentBeforePrint()
    Options.PrintDrawingObjects = False
    ActiveDocument.PrintOut
    Options.PrintDrawingObjects = True
End Sub
Avatar billede jkrons Professor
22. november 2007 - 21:18 #4
Når du slår den til igen følger den dokumentet.
Avatar billede dane022 Seniormester
22. november 2007 - 21:42 #5
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?
Avatar billede jkrons Professor
22. november 2007 - 21:52 #6
Du har helt ret. Af én eller anden grund får den ikke trigget koden. Jeg ser lige nærmere på det.
Avatar billede jkrons Professor
22. november 2007 - 22:41 #7
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.
Avatar billede dane022 Seniormester
23. november 2007 - 19:34 #8
Jeg prøver, måske får jeg det først testet på mandag
Avatar billede dane022 Seniormester
27. november 2007 - 15:40 #9
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?
Avatar billede dane022 Seniormester
27. november 2007 - 15:41 #10
Jeg skal dog lige sige det virker, så du må gerne lægge et svar
Avatar billede jkrons Professor
27. november 2007 - 21:54 #11
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.
Avatar billede dane022 Seniormester
28. november 2007 - 11:21 #12
Hvad skal der tilføjes til koden hvis man vil ha vist printdialogboksen hver gang
Avatar billede jkrons Professor
28. november 2007 - 14:40 #13
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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Tag et kursus i Word og øg effektiviteten

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester