Du er frakoblet, venter på at Internett skal koble til igjen

Automatisere oppretting av et nytt Microsoft Word-dokument ved hjelp av Visual Basic

Kundestøtte for Office 2003 er avsluttet

Microsoft avsluttet kundestøtte for Office 2003 den 8. april 2014. Denne endringen har påvirket programvareoppdateringene og sikkerhetsalternativene dine. Finn ut hvordan dette påvirker deg og hvordan du forblir beskyttet.

Sammendrag
Her finner du en trinnvis fremgangsmåte for oppretting av nye dokumenter i Word ved hjelp av automatisering fra Visual Basic.

Eksempelkode

Eksempelkoden i denne artikkelen illustrerer hvordan du:
  • setter inn avsnitt med tekst og formatering
  • blar gjennom og endrer forskjellige områder av et dokument
  • setter inn tabeller, formaterer tabeller og fyller ut tabellene med data
  • setter inn diagrammer
Trinnvis fremgangsmåte for oppretting av nye Word-dokumenter ved hjelp av automatisering fra Visual Basic:
  1. Start Visual Basic, og opprett et nytt Standard EXE-prosjekt. Som standard opprettes Form1.
  2. Klikk ReferencesProject-menyen, klikk et av alternativene, og klikk deretter OK.
    • Hvis du har Office Word 2007, klikker du Microsoft Word 12.0 Object Library.
    • Hvis du har Word 2003, klikker du Microsoft Word 11.0 Object Library.
    • Hvis du har Word 2002, klikker du Microsoft Word 10.0 Object Library.
    • Hvis du har Word 2000, klikker du Microsoft Word 9.0 Object Library.
  3. Legg til en CommandButton-kontroll i Form1.
  4. Legg til følgende kode i Click-hendelsen 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. Trykk F5 for å kjøre programmet, og klikk deretter Command1.
Når koden er kjørt, tar du en kikk på dokumentet som ble opprettet. Dokumentet består av to sider med formaterte avsnitt og tabeller samt et diagram.

Bruke en mal

Hvis du bruker automatisering til oppretting av mange dokumenter med samme format, kan det lønne seg å starte prosessen med et nytt dokument som bygger på en forhåndsformatert mal. Å bruke en mal sammen med Word-automatiseringsklienten gir to store fordeler sammenlignet med å bygge opp dokumentet fra grunnen av:
  • Du får større kontroll over formatering og plassering av objekter i dokumentene.
  • Du kan bygge opp dokumentene med mindre kode.
Bruker du en mal, kan du finjustere plassering av tabeller, avsnitt og andre objekter i dokumentet, og du kan også legge inn formatering for disse objektene. Automatisering gjør det mulig å opprette nye dokumenter med utgangspunkt i en mal med kode, som i eksemplet nedenfor.
oWord.Documents.Add "<Path to your template>\MyTemplate.dot"				
I malen kan du angi bokmerker slik at automatiseringsklienten kan fylle ut med variabeltekst på et bestemt sted i dokumentet. Slik gjør du:
oDoc.Bookmarks("MyBookmark").Range.Text = "Some Text Here"				
En annen fordel ved å bruke maler er at du kan opprette og lagre formateringsstiler for senere bruk. Slik gjør du:
oDoc.Bookmarks("MyBookmark").Range.Style = "MyStyle"				
- eller -
oWord.Selection.Style = "MyStyle"				
Referanser
Hvis du vil ha mer informasjon, kan du klikke artikkelnumrene nedenfor for å vise artiklene i Microsoft Knowledge Base:
220607 Automatisere Microsoft Word til å utføre utskriftsfletting fra Visual Basic (denne artikkelen kan være på engelsk)
285332 Slik automatiserer du Word med Visual Basic for å opprette en utskriftsfletting
285333 INFO: Demonstrasjon av hendelseskode for Word 2002 MailMerge (denne artikkelen kan være på engelsk)
Hvis du vil ha mer informasjon, kan du se følgende webområder for Microsoft Developer Network (MSDN):
Microsoft Office-utvikling med Visual Studio
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx
(c) Microsoft Corporation 2001. Med enerett. Bidrag fra Lori B. Turner, Microsoft Corporation.

WD2007
Egenskaper

Artikkel-ID: 313193 – Forrige gjennomgang: 11/23/2007 12:28:00 – Revisjon: 6.0

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

  • kbhowtomaster kbautomation kbexpertiseinter KB313193
Tilbakemelding
did=1&t=">