Bei Microsoft anmelden
Melden Sie sich an, oder erstellen Sie ein Konto.
Hallo,
Wählen Sie ein anderes Konto aus.
Sie haben mehrere Konten.
Wählen Sie das Konto aus, mit dem Sie sich anmelden möchten.

Eine Microsoft Visual C# .NET-Version dieses Artikels finden Sie unter 316384.
 

Eine Microsoft Visual Basic 6.0-Version dieses Artikels finden Sie unter 313193.
 

Zusammenfassung

In diesem Schritt-für-Schritt-Artikel wird beschrieben, wie Sie ein neues Dokument in Word mithilfe der Automatisierung von Visual Basic .NET erstellen.

Beispielcode

Der Beispielcode in diesem Artikel veranschaulicht die folgenden Schritte:

  • Fügen Sie Absätze mit Text und Formatierung ein.

  • Durchsuchen und Ändern verschiedener Bereiche innerhalb eines Dokuments.

  • Fügen Sie Tabellen ein, formatieren Sie Tabellen, und füllen Sie die Tabellen mit Daten auf.

  • Fügen Sie ein Diagramm hinzu.

Führen Sie die folgenden Schritte aus, um ein neues Word-Dokument mithilfe von Automation aus Visual Basic .NET zu erstellen:

  1. Starten Sie Microsoft Visual Studio .NET. Klicken Sie im Menü Datei auf Neu und dann auf Projekt. Klicken Sie unter Projekttypen auf Visual Basic-Projekte und dann unter Vorlagen auf Windows-Anwendung. Form1 wird standardmäßig erstellt.

  2. Fügen Sie einen Verweis auf die Microsoft Word-Objektbibliothek hinzu. Gehen Sie dazu wie folgt vor:

    1. Klicken Sie im Menü Projekt auf Verweis hinzufügen.

    2. Suchen Sie auf der Registerkarte COM die Microsoft Word-Objektbibliothek, und klicken Sie auf Auswählen.

      Hinweis Microsoft Office 2003 und höhere Versionen von Office enthalten primäre Interopassemblys (PIAs). Microsoft Office XP enthält keine PIAs, aber sie können heruntergeladen werden.
       

    3. Klicken Sie im Dialogfeld Verweise hinzufügen auf OK, um Ihre Auswahl zu übernehmen. Wenn Sie aufgefordert werden, Wrapper für die ausgewählten Bibliotheken zu generieren, klicken Sie auf Ja.

  3. Wählen Sie im Menü Ansicht die Option Toolbox aus, um die Toolbox anzuzeigen, und fügen Sie dann Form1 eine Schaltfläche hinzu.

  4. Doppelklicken Sie auf Button1. Das Codefenster für das Formular wird angezeigt.

  5. Ersetzen Sie im Codefenster den folgenden Code:

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

    Mit:

        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. Fügen Sie den folgenden Code am Anfang von Form1.vb hinzu:

    Imports Word = Microsoft.Office.Interop.Word
  7. Drücken Sie F5, um das Programm zu erstellen und auszuführen.

Untersuchen Sie nach Abschluss des Codes das Dokument, das für Sie erstellt wird. Das Dokument enthält zwei Seiten mit formatierten Absätzen, Tabellen und einem Diagramm.

Verwenden einer Vorlage

Wenn Sie Automation verwenden, um Dokumente zu erstellen, die alle in einem gemeinsamen Format vorliegen, können Sie davon profitieren, den Prozess mit einem neuen Dokument zu starten, das auf einer vorformatierten Vorlage basiert. Die Verwendung einer Vorlage mit Ihrem Word Automation-Client hat zwei wesentliche Vorteile gegenüber dem Erstellen eines Dokuments aus dem Nichts:

  • Sie können die Formatierung und Platzierung von Objekten in Ihren Dokumenten besser steuern.

  • Sie können Ihre Dokumente mit weniger Code erstellen.

Mithilfe einer Vorlage können Sie die Platzierung von Tabellen, Absätzen und anderen Objekten innerhalb des Dokuments optimieren und formatierungen für diese Objekte einschließen. Mithilfe von Automation können Sie ein neues Dokument erstellen, das auf Ihrer Vorlage mit Code wie dem folgenden basiert:

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

In Ihrer Vorlage können Sie Lesezeichen definieren, damit Ihr Automation-Client variablen Text an einer bestimmten Stelle im Dokument wie folgt ausfüllen kann:

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

Ein weiterer Vorteil der Verwendung einer Vorlage besteht darin, dass Sie Formatierungsstile erstellen und speichern können, die Sie zur Laufzeit anwenden möchten, wie folgt:

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

- oder -

oWord.Selection.Style = "MyStyle"

Informationsquellen

Weitere Informationen zur Verwendung von Visual Basic .NET zum Automatisieren von Microsoft Word finden Sie in den folgenden Artikeln der Microsoft Knowledge Base:

301656 Automatisieren von Word zum Ausführen eines Seriendrucks aus Visual Basic .NET

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.

War diese Information hilfreich?

Wie zufrieden sind Sie mit der Sprachqualität?
Was hat Ihre Erfahrung beeinflusst?
Wenn Sie auf "Absenden" klicken, wird Ihr Feedback zur Verbesserung von Produkten und Diensten von Microsoft verwendet. Ihr IT-Administrator kann diese Daten sammeln. Datenschutzbestimmungen.

Vielen Dank für Ihr Feedback!

×