Zie 316384 voor een Microsoft Visual C#.NET-versie van dit artikel.  

Zie 313193 voor een Microsoft Visual Basic 6.0-versie van dit artikel.  

Samenvatting

In dit stapsgewijze artikel wordt beschreven hoe u een nieuw document maakt in Word met behulp van Automation van Visual Basic .NET.

Voorbeeldcode

De voorbeeldcode in dit artikel laat zien hoe u het volgende doet:

  • Alinea's met tekst en opmaak invoegen.

  • Bladeren en wijzigen in verschillende bereiken in een document.

  • Tabellen invoegen, tabellen opmaken en de tabellen vullen met gegevens.

  • Een grafiek toevoegen.

Voer de volgende stappen uit om een nieuw Word-document te maken met behulp van Automation vanuit Visual Basic .NET:

  1. Start Microsoft Visual Studio .NET. Klik in het menu Bestand op Nieuw en klik vervolgens op Project. Klik onder Projecttypen op Visual Basic Projects en klik vervolgens op Windows-toepassing onder Sjablonen. Form1 wordt standaard gemaakt.

  2. Voeg een verwijzing toe naar de Microsoft Word-objectbibliotheek. Ga hiervoor als volgt te werk:

    1. Klik op Verwijzing toevoegen in het menu Project.

    2. Zoek op het tabblad COM de Microsoft Word-objectbibliotheek en klik op Selecteren.Opmerking Microsoft Office 2003 en latere versies van Office bevatten Primaire Interop Assembly's (PIA's). Microsoft Office XP bevat geen PIA's, maar ze kunnen worden gedownload.  

    3. Klik op OK in het dialoogvenster Verwijzingen toevoegen om uw selecties te accepteren. Als u wordt gevraagd om wrappers te genereren voor de bibliotheken die u hebt geselecteerd, klikt u op Ja.

  3. Selecteer in het menu Beeld de optie Werkset om de werkset weer te geven en voeg vervolgens een knop toe aan Form1.

  4. Dubbelklik op Knop1. Het codevenster voor het formulier wordt weergegeven.

  5. Vervang in het codevenster de volgende code

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

    Met:

        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. Voeg de volgende code toe aan het begin van Form1.vb:

    Imports Word = Microsoft.Office.Interop.Word
  7. Druk op F5 om het programma te bouwen en uit te voeren.

Nadat de code is voltooid, bekijkt u het document dat voor u is gemaakt. Het document bevat twee pagina's met opgemaakte alinea's, tabellen en een grafiek.

Een sjabloon gebruiken

Als u Automation gebruikt om documenten te bouwen die allemaal in een gemeenschappelijke indeling zijn, kunt u profiteren van het starten van het proces met een nieuw document dat is gebaseerd op een vooraf opgemaakte sjabloon. Het gebruik van een sjabloon met uw Word Automation-client heeft twee belangrijke voordelen ten opzichte van het bouwen van een document vanuit het niets:

  • U hebt meer controle over de opmaak en plaatsing van objecten in uw documenten.

  • U kunt uw documenten bouwen met minder code.

Met behulp van een sjabloon kunt u de plaatsing van tabellen, alinea's en andere objecten in het document verfijnen en de opmaak van deze objecten opnemen. Met Behulp van Automation kunt u een nieuw document maken op basis van uw sjabloon met code zoals de volgende:

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

In uw sjabloon kunt u bladwijzers definiëren, zodat uw Automation-client als volgt variabele tekst op een specifieke locatie in het document kan invullen:

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

Een ander voordeel van het gebruik van een sjabloon is dat u als volgt opmaakstijlen kunt maken en opslaan die u tijdens de uitvoering wilt toepassen:

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

-of-

oWord.Selection.Style = "MyStyle"

Verwijzingen

Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie over het gebruik van Visual Basic .NET om Microsoft Word te automatiseren:

301656 Word automatiseren om een samenvoegbewerking uit te voeren vanuit Visual Basic .NET

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.