Brug MS Word automatisk

posted in: Programmering | 0

Microsoft Word kan en frygtelig masse ting. Det ved de fleste brugere fra deres almindelige arbejde med Word som tekstbehandler. Men med lidt ekstra krumspring kan man også bruge mange af de indbyggede funktioner i Word som en software robot, der laver et eller andet for dig helt automatisk.

Nøglen til dette er dels macroer, som “gør et eller andet” og dels muligheden for at starte Word “usynligt”.

Hvis vi tager det sidste først, så se på denne kommandolinje:

"C:\Program Files\Microsoft Office\Office15\WINWORD.EXE" /mExportToPDF /q "your_document_path.docx"

Kommandolinjen starter Word og indlæser “dit_dokument_navn.docx” og udfører så macroen ExportTpPDF – og den gør det – på grund af /q – uden at vise Word opstartsbilledet.

Hvad macroen laver bestemmer du og det kan være en macro, som du har lavet ved at benytte den brugervenlige macroindspiller: Du starter macrooptagen og gør så manuelt, det du ønsker macroen skal gøre og når du er færdig, lukker du optagelsen. Macrooptageren ligger i Udvikler menuen (Denne menu kan være slået fra i Word opsætningen, så du skal lige slå den til):

Eller du kan selv programmere macroen i VBA (Visual Basic for Applications) – eller finde noget på nettet eller få andre som fx InfoShare til det.

Macroen ExportToPDF gør det, du vil forvente ud fra navnet: Den indlæser Word dokumentet og gemmer det som PDF og afslutter Word – alt sammen uden at du skal røre en finger:

' The Word macro for exporting to PDF (the Word window closes after finishing)
Sub ExportToPDF()
    ChangeFileOpenDirectory ThisDocument.Path
    ActiveDocument.ExportAsFixedFormat _
        OutputFileName:=Left(ActiveDocument.FullName, InStrRev(ActiveDocument.FullName, ".")) + "pdf", _
        ExportFormat:=wdExportFormatPDF, _
        OpenAfterExport:=False, _
        OptimizeFor:=wdExportOptimizeForPrint, _
        Range:=wdExportAllDocument, _
        From:=1, _
        To:=1, _
        Item:=wdExportDocumentContent, _
        IncludeDocProps:=True, _
        KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, _
        DocStructureTags:=True, _
        BitmapMissingFonts:=True, _
        UseISO19005_1:=False
    Application.Quit SaveChanges:=wdDoNotSaveChanges
End Sub

Bemærk linien ChangeFileOpenDirectory ThisDocument.Path: Uden den linje vil Word foretrække at arbejde i den mappe som Word er indstillet til at bruge som standard – typisk Dokument mappen på din brugerkonto. Og så kan du måske have lidt vanskeligt ved at finde pdf filen bagefter. Og linjen Application.Quit sørger for at Word lukkes igen – ofte uden, at do overhovedet opdager, at det har været åbnet.

Når du skriver eller kopierer makroen ind i Word (under Makroer i Udvikler menuen), skal du sørge for at den bliver gemt i normal.dot: Du vil jo gerne have adgang til makroen uanset hvilket dokument, du har bedt Word om at konvertere.

Dette eksempel er hentet fra superuser.com og vi har brugt den til at konvertere tusindvis af dokumenter fra Word doc til PDF.