Hvis du vil ha en Microsoft Visual C# .NET-versjon av denne artikkelen, kan du se 316384.  

Hvis du vil ha en Microsoft Visual Basic 6.0-versjon av denne artikkelen, kan du se 313193.  

Sammendrag

Denne trinnvise artikkelen beskriver hvordan du oppretter et nytt dokument i Word ved hjelp av automatisering fra Visual Basic .NET.

Eksempelkode

Eksempelkoden i denne artikkelen demonstrerer hvordan du gjør følgende:

  • Sett inn avsnitt med tekst og formatering.

  • Bla gjennom og endre ulike områder i et dokument.

  • Sett inn tabeller, formater tabeller og fyll ut tabellene med data.

  • Legg til et diagram.

Følg disse trinnene for å opprette et nytt Word-dokument ved hjelp av automatisering fra Visual Basic .NET:

  1. Start Microsoft Visual Studio .NET. Klikk Ny på Fil-menyen, og klikk deretter Prosjekt. Klikk Visual Basic-prosjekter under Prosjekttyper, og klikk deretter Windows-program under Maler. Skjema1 er opprettet som standard.

  2. Legg til en referanse i objektbiblioteket i Microsoft Word. Dette gjør du slik:

    1. Klikk Legg til referanse på Prosjekt-menyen.

    2. Finn Objektbiblioteket i Microsoft Word på COM-fanen, og klikk Velg.Obs! Microsoft Office 2003 og nyere versjoner av Office inkluderer primære interop-samlinger (PIAer). Microsoft Office XP inkluderer ikke PIAer, men de kan lastes ned.  

    3. Klikk OK i dialogboksen Legg til referanser for å godta valgene. Hvis du får en melding om å generere wrappers for bibliotekene du valgte, klikker du Ja.

  3. Velg Verktøykasse på Vis-menyen for å vise verktøykassen, og legg deretter til en knapp i Skjema1.

  4. Dobbeltklikk Knapp1. Kodevinduet for skjemaet vises.

  5. Erstatt følgende kode i kodevinduet

        Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
    
        End Sub

    Med:

        Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
    
            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.
            oWord = CreateObject("Word.Application")
            oWord.Visible = True
            oDoc = oWord.Documents.Add
    
            'Insert a paragraph at the beginning of the document.
            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.
            oPara2 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)
            oPara2.Range.Text = "Heading 2"
            oPara2.Format.SpaceAfter = 6
            oPara2.Range.InsertParagraphAfter()
    
            'Insert another paragraph.
            oPara3 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\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 and italic.
            Dim r As Integer, c As Integer
            oTable = oDoc.Tables.Add(oDoc.Bookmarks.Item("\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.Item(1).Range.Font.Bold = True
            oTable.Rows.Item(1).Range.Font.Italic = True
    
            'Add some text after the table.
            'oTable.Range.InsertParagraphAfter()
            oPara4 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\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.
            oTable = oDoc.Tables.Add(oDoc.Bookmarks.Item("\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.Item(1).Width = oWord.InchesToPoints(2)   'Change width of columns 1 & 2
            oTable.Columns.Item(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.Item("\endofdoc").Range.InsertParagraphAfter()
            Do
                oRng = oDoc.Bookmarks.Item("\endofdoc").Range
                oRng.ParagraphFormat.SpaceAfter = 6
                oRng.InsertAfter("A line of text")
                oRng.InsertParagraphAfter()
            Loop While Pos >= oRng.Information(Word.WdInformation.wdVerticalPositionRelativeToPage)
            oRng.Collapse(Word.WdCollapseDirection.wdCollapseEnd)
            oRng.InsertBreak(Word.WdBreakType.wdPageBreak)
            oRng.Collapse(Word.WdCollapseDirection.wdCollapseEnd)
            oRng.InsertAfter("We're now on page 2. Here's my chart:")
            oRng.InsertParagraphAfter()
    
            'Insert a chart and change the chart.
            oShape = oDoc.Bookmarks.Item("\endofdoc").Range.InlineShapes.AddOLEObject( _
                ClassType:="MSGraph.Chart.8", FileName _
                :="", LinkToFile:=False, DisplayAsIcon:=False)
            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.
            oRng = oDoc.Bookmarks.Item("\endofdoc").Range
            oRng.InsertParagraphAfter()
            oRng.InsertAfter("THE END.")
    
            'All done. Close this form.
            Me.Close()
    
        End Sub
  6. Legg til følgende kode øverst i Form1.vb:

    Imports Word = Microsoft.Office.Interop.Word
  7. Trykk F5 for å bygge og kjøre programmet.

Når koden er fullført, kan du undersøke dokumentet som er opprettet for deg. Dokumentet inneholder to sider med formaterte avsnitt, tabeller og et diagram.

Bruke en mal

Hvis du bruker automatisering til å bygge dokumenter som alle er i et felles format, kan du dra nytte av å starte prosessen med et nytt dokument som er basert på en forhåndsformatert mal. Bruk av en mal med Word Automation-klienten har to betydelige fordeler ved å bygge et dokument fra ingenting:

  • Du kan ha større kontroll over formateringen og plasseringen av objekter i hele dokumentene.

  • Du kan bygge dokumenter med mindre kode.

Ved hjelp av en mal kan du finjustere plasseringen av tabeller, avsnitt og andre objekter i dokumentet, samt inkludere formatering på disse objektene. Ved hjelp av automatisering kan du opprette et nytt dokument basert på malen med kode, for eksempel følgende:

oWord.Documents.Add "<Path to your template>\MyTemplate.dot"

I malen kan du definere bokmerker slik at automatiseringsklienten kan fylle ut variabel tekst på et bestemt sted i dokumentet, som følger:

oDoc.Bookmarks.Item("MyBookmark").Range.Text = "Some Text Here"

En annen fordel med å bruke en mal er at du kan opprette og lagre formateringsstiler som du vil bruke ved kjøring, som følger:

oDoc.Bookmarks.Item("MyBookmark").Range.Style = "MyStyle"

-Eller-

oWord.Selection.Style = "MyStyle"

Referanser

Hvis du vil ha mer informasjon om hvordan du bruker Visual Basic .NET til å automatisere Microsoft Word, klikker du følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:

301656 Slik automatiserer du Word til å utføre en utskriftsfletting fra Visual Basic .NET

Trenger du mer hjelp?

Vil du ha flere alternativer?

Utforsk abonnementsfordeler, bla gjennom opplæringskurs, finn ut hvordan du sikrer enheten og mer.