Du er offline. Venter på, at der oprettes forbindelse til internettet igen

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

Support til Office 2003 er ophørt

Microsoft ophørte med at yde support til Office 2003 den 8. april 2014. Denne ændring har haft indflydelse på dine softwareopdateringer og sikkerhedsindstillinger. Se, hvad det betyder for dig, og hvordan du kan forblive beskyttet.

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.

Word 2007
Egenskaber

Artikel-id: 313193 – Seneste udgave 11/23/2007 12:11:00 – Udgave 6.0

Microsoft Visual Basic 6.0 Professional Edition, Microsoft Office Word 2007, Microsoft Office Word 2003, Microsoft Word 2002 Standard, Microsoft Word 2000 Standard

  • kbhowtomaster kbautomation kbexpertiseinter KB313193
Feedback
);