Sådan automatiseres Microsoft Word ved at bruge Visual Basic til at oprette et nyt dokument

Oversættelser af artikler Oversættelser af artikler
Artikel-id: 313193 - Få vist de produkter, som denne artikel refererer til.
Udvid alle | Skjul alle

Sammenfatning

Denne artikel indeholder en trinvis beskrivelse af, hvordan du opretter et nyt dokument i Word ved hjælp af automatisering fra Visual Basic.

Eksempelkode

Eksempelkoden i denne artikel demonstrerer, hvordan du skal gøre følgende:
  • Indsætte afsnit med tekst og formatering.
  • Gennemse og ændre forskellige områder i et dokument.
  • Indsætte tabeller, formatere tabeller og udfylde tabellerne med data.
  • Tilføje et diagram
Følg disse trin for at oprette et nyt Word-dokument ved hjælp af automatisering fra Visual Basic:
  1. Opret et nyt standardprojekt af typen EXE i Visual Basic. Form1 oprettes som standard.
  2. Klik på Referencer i menuen Projekt, klik på en af følgende indstillinger, og klik derefter på OK:
    • Klik på Microsoft Word 12.0 Objektbibliotek i forbindelse med Office Word 2007.
    • Klik på Microsoft Word 11.0 Objektbibliotek i forbindelse med Word 2003.
    • Klik på Microsoft Word 10.0 Objektbibliotek i forbindelse med Word 2002.
    • Klik på Microsoft Word 9.0 Objektbibliotek i forbindelse med Word 2000.
  3. Føj kontrolelementet CommandButton til Form1.
  4. Føj følgende kode til klikhændelsen for Command1:
        Dim oWord As Word.Application
        Dim oDoc As Word.Document
        Dim oTable As Word.Table
        Dim oPara1 As Word.Paragraph, oPara2 As Word.Paragraph
        Dim oPara3 As Word.Paragraph, oPara4 As Word.Paragraph
        Dim oRng As Word.Range
        Dim oShape As Word.InlineShape
        Dim oChart As Object
        Dim Pos as Double
    
        'Start Word and open the document template.
        Set oWord = CreateObject("Word.Application")
        oWord.Visible = True
        Set oDoc = oWord.Documents.Add
        
        'Insert a paragraph at the beginning of the document.
        Set oPara1 = oDoc.Content.Paragraphs.Add
        oPara1.Range.Text = "Heading 1"
        oPara1.Range.Font.Bold = True
        oPara1.Format.SpaceAfter = 24    '24 pt spacing after paragraph.
        oPara1.Range.InsertParagraphAfter
        
        'Insert a paragraph at the end of the document.
        '** \endofdoc is a predefined bookmark.
        Set oPara2 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks("\endofdoc").Range)
        oPara2.Range.Text = "Heading 2"
        oPara2.Format.SpaceAfter = 6
        oPara2.Range.InsertParagraphAfter
        
        'Insert another paragraph.
        Set oPara3 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks("\endofdoc").Range)
        oPara3.Range.Text = "This is a sentence of normal text. Now here is a table:"
        oPara3.Range.Font.Bold = False
        oPara3.Format.SpaceAfter = 24
        oPara3.Range.InsertParagraphAfter
        
        'Insert a 3 x 5 table, fill it with data and make the first row
        'bold,italic.
        Dim r As Integer, c As Integer
        Set oTable = oDoc.Tables.Add(oDoc.Bookmarks("\endofdoc").Range, 3, 5)
        oTable.Range.ParagraphFormat.SpaceAfter = 6
        For r = 1 To 3
            For c = 1 To 5
                oTable.Cell(r, c).Range.Text = "r" & r & "c" & c
            Next
        Next
        oTable.Rows(1).Range.Font.Bold = True
        oTable.Rows(1).Range.Font.Italic = True
        
        'Add some text after the table.
        'oTable.Range.InsertParagraphAfter
        Set oPara4 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks("\endofdoc").Range)
        oPara4.Range.InsertParagraphBefore
        oPara4.Range.Text = "And here's another table:"
        oPara4.Format.SpaceAfter = 24
        oPara4.Range.InsertParagraphAfter
        
        'Insert a 5 x 2 table, fill it with data and change the column widths.
        Set oTable = oDoc.Tables.Add(oDoc.Bookmarks("\endofdoc").Range, 5, 2)
        oTable.Range.ParagraphFormat.SpaceAfter = 6
        For r = 1 To 5
            For c = 1 To 2
                oTable.Cell(r, c).Range.Text = "r" & r & "c" & c
            Next
        Next
        oTable.Columns(1).Width = oWord.InchesToPoints(2)   'Change width of columns 1 & 2.
        oTable.Columns(2).Width = oWord.InchesToPoints(3)
        
        'Keep inserting text. When you get to 7 inches from top of the
        'document, insert a hard page break.
        Pos = oWord.InchesToPoints(7)
        oDoc.Bookmarks("\endofdoc").Range.InsertParagraphAfter
        Do
            Set oRng = oDoc.Bookmarks("\endofdoc").Range
            oRng.ParagraphFormat.SpaceAfter = 6
            oRng.InsertAfter "A line of text"
            oRng.InsertParagraphAfter
        Loop While Pos >= oRng.Information(wdVerticalPositionRelativeToPage)
        oRng.Collapse (wdCollapseEnd)
        oRng.InsertBreak wdPageBreak
        oRng.Collapse wdCollapseEnd
        oRng.InsertAfter "We're now on page 2. Here's my chart:"
        oRng.InsertParagraphAfter
        
        'Insert a chart and change the chart.
        Set oShape = oDoc.Bookmarks("\endofdoc").Range.InlineShapes.AddOLEObject( _
            ClassType:="MSGraph.Chart.8", FileName _
            :="", LinkToFile:=False, DisplayAsIcon:=False)
        Set oChart = oShape.OLEFormat.Object
        oChart.charttype = 4 'xlLine = 4
        oChart.Application.Update
        oChart.Application.Quit
        '... If desired, you can proceed from here using the Microsoft Graph 
        'Object model on the oChart object to make additional changes to the
        'chart.
        oShape.Width = oWord.InchesToPoints(6.25)
        oShape.Height = oWord.InchesToPoints(3.57)
        
        'Add text after the chart.
        Set oRng = oDoc.Bookmarks("\endofdoc").Range
        oRng.InsertParagraphAfter
        oRng.InsertAfter "THE END."
    
        'All done. Unload this form.
        Unload Me
    					
  5. Tryk på F5 for at køre programmet, og klik derefter på Command1.
Når koden er fuldført, skal du undersøge det dokument, der er blevet oprettet. Dokumentet indeholder to sider med formaterede afsnit, tabeller og et diagram.

Brug en skabelon

Hvis du benytter automatisering til oprettelse af dokumenter, der alle er i et almindeligt format, kan du drage fordel af at starte processen med et nyt dokument, der er baseret på en forudformateret skabelon. Der er to betydelige fordele ved at benytte en skabelon sammen med Word-automatiseringsklienten i stedet for at oprette et dokument fra bunden:
  • Du har større kontrol over formateringen og placeringen af objekter i dokumenterne.
  • Du kan oprette dokumenter med færre koder.
Ved at benytte en skabelon kan du finjustere placeringen af tabeller, afsnit og andre objekter i dokumentet samt medtage formatering af disse objekter. Ved at benytte automatisering kan du oprette et nyt dokument på baggrund af skabelonen med kode som vist nedenfor:
oWord.Documents.Add "<Path to your template>\MyTemplate.dot"
				
I skabelonen kan du angive bogmærker, så automatiseringsklienten kan indsætte variabel tekst på en specifik placering i dokumentet som følger:
oDoc.Bookmarks("MyBookmark").Range.Text = "Some Text Here"
				
En anden fordel ved at benytte en skabelon er, at du kan oprette og gemme typografiformatering, som du vil anvende på kørselstidspunktet, som følger:
oDoc.Bookmarks("MyBookmark").Range.Style = "MyStyle"
				
eller
oWord.Selection.Style = "MyStyle"
				

Referencer

Du kan finde flere oplysninger ved at klikke på nedenstående artikelnumre for at få vist artiklerne i Microsoft Knowledge Base:
220607 Sådan automatiseres Microsoft Word (fra Visual Basic) til at udføre brevfletning. Artiklen er evt. på engelsk.
285332 Sådan automatiseres Word med Visual Basic for at oprette brevfletning
285333 INFO: Demonstration af hændelseskode for brevfletning i Word 2002. Artiklen er evt. på engelsk.
Du finder flere oplysninger ved at besøge følgende websteder til Microsoft Developer Network (MSDN):
Microsoft Office Development with Visual Studio
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx
(c) Microsoft Corporation 2001. Alle rettigheder forbeholdes. Bidrag af Lori B. Turner, Microsoft Corporation.

Egenskaber

Artikel-id: 313193 - Seneste redigering: 23. november 2007 - Redigering: 6.0
Oplysningerne i denne artikel gælder:
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Office Word 2007
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard
  • Microsoft Word 2000 Standard
Nøgleord: 
kbhowtomaster kbautomation kbexpertiseinter KB313193

Send feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com