Avatar billede phuc69 Juniormester
28. januar 2010 - 11:01 Der er 2 kommentarer og
1 løsning

Hvordan laver man makro der aktiveres når der printes

Jeg vil gerne have en makro der gør følgende

1. Aktiveres når man vil printe
2. Kommer med en dialog boks med tekst og mulighed for at fortryde ens print.
Avatar billede Lene Fredborg Ekspert
28. januar 2010 - 12:24 #1
Hvis det er planen, at din makro skal køre i stedet for Words indbyggede print-funktionalitet, når en bruger vælger Udskriv eller taster Ctrl+P, så se denne artikel:

http://word.mvps.org/faqs/macrosvba/InterceptSavePrint.htm

Du skal i dette tilfælde lave en makro, som hedder FilePrint. Den vil automatisk blive kaldt i stedet for den indbyggede kommando. Makroen skal så indeholde kode, som laver det, du ønsker. Hvis du vælger på den måde at hindre brugere i at benytte den indbyggede Print-funktion (eller en anden indbygget funktion), skal du være meget, meget sikker på, at du har totalt styr på, at din makro er gennemtænkt og i orden.

En anden mulighed er at lave en makro, som er uafhængig af den indbyggede funktion, og som kan benyttes efter behov. Du kan tilknytte en tastaturgenvej og/eller du kan knytte den til en knap i en værktøjslinje (hvis Word 2007: værktøjslinjen Hurtig adgang).

Følgende kode er fra en optaget makro, hvor der via standard Udskriv-dialogboksen er valgt at udskrive det aktive dokument i ét eksemplar på den aktive printer:

    Application.PrintOut FileName:="", 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

I koden kan du se, hvad du kan stille på. Hvis der f.eks. skal udskrives 2 eksemplarer, skal "Copies:=1" ændres til "Copies:=2".

Hvis du indbygger ovenstående kode i en makro, hvor der først vises en dialogboks, kan du styre, at brugeren kan vælge Annuller. Se denne makro - udskriv-koden køres kun, hvis brugeren vælger OK i dialogboksen - ellers sker der ingenting:

Sub UdskrivAktiveDokument()

    If MsgBox("Klik OK for at udskrive det aktive dokument.", vbOKCancel, "Udskriv dokument") = vbOK Then
        Application.PrintOut FileName:="", 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
    End If
End Sub
Avatar billede phuc69 Juniormester
28. januar 2010 - 13:55 #2
Det prøver jeg tak for hjælpen


Smid et svar
Avatar billede Lene Fredborg Ekspert
28. januar 2010 - 14:46 #3
Held og lykke med det.
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