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.htmDu 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