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

Artikkeloversettelser Artikkeloversettelser
Artikkel-ID: 313193 - Vis produkter som denne artikkelen gjelder for.
Vis alt | Skjul alt

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.

Egenskaper

Artikkel-ID: 313193 - Forrige gjennomgang: 23. november 2007 - Gjennomgang: 6.0
Informasjonen i denne artikkelen gjelder:
  • 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
Nøkkelord: 
kbhowtomaster kbautomation kbexpertiseinter KB313193

Gi tilbakemelding

 

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