Automatisieren von Microsoft Word zum Erstellen eines neuen Dokuments mithilfe von Visual Basic

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 316383 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Eine Version dieses Artikels für Microsoft Visual C# .NET finden Sie unter 316384.
Eine Version dieses Artikels für Microsoft Visual Basic 6.0 finden Sie unter 313193.
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser Artikel beschreibt Schritt für Schritt, wie Sie mithilfe der Automatisierung von Visual Basic ein neues Dokument in Word erstellen können.

Beispielcode

Der Beispielcode in diesem Artikel demonstriert, wie Sie die folgenden Aktionen ausführen:
  • Einfügen von Absätzen mit Text und Formatierung.
  • Mehrere Bereiche in einem Dokument durchsuchen und ändern.
  • Tabellen einfügen, Tabellen formatieren und Tabellen mit Daten füllen.
  • Diagramm hinzufügen.
Gehen Sie folgendermaßen vor, um mithilfe der Automatisierung von Visual Basic .NET aus ein neues Word-Dokument zu erstellen:
  1. Starten Sie Microsoft Visual Studio .NET. Klicken Sie im Menü Datei auf Neu, und klicken Sie anschließend auf Projekt. Unter Projekttypen klicken Sie auf Visual Basic-Projekte. Klicken Sie dann unter Vorlagen auf die Option Windows-Anwendung. Form1 wird standardmäßig erstellt.
  2. Fügen Sie einen Verweis auf die Microsoft Word Object Library hinzu. Gehen Sie zu diesem Zweck folgendermaßen vor:
    1. Klicken Sie im Menü Projekt auf Verweis hinzufügen.
    2. Gehen Sie zu dem Eintrag für die Microsoft Word Object Library auf der Registerkarte COM, und klicken Sie auf Auswählen.

      Hinweis Microsoft Office 2003 und höhere Versionen von Office enthalten Primary Interop Assemblies (PIAs). In Microsoft Office XP sind zwar keine PIAs enthalten, Sie können diese jedoch bei Bedarf downloaden. Weitere Informationen zu Office XP-PIAs finden Sie im folgenden Artikel der Microsoft Knowledge Base:
      328912 Primäre Interop-Assemblys (PIAs) für Microsoft Office XP stehen zum Download zur Verfügung
    3. Klicken Sie im Dialogfeld Verweise hinzufügen auf OK, um Ihre Auswahl zu bestätigen. Klicken Sie auf Ja, wenn Sie gefragt werden, ob für die von Ihnen gewählten Bibliotheken Wrapper erstellt werden sollen.
  3. Wählen Sie im Menü Ansicht die Option Toolbox, um die Toolbox anzuzeigen, und fügen Sie dann Form1 eine Schaltfläche hinzu.
  4. Doppelklicken Sie auf Button1 (Schaltfläche 1). Das Codefenster für das Formular erscheint.
  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
    durch:
        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
    
            'Word starten und Dokumentvorlage öffnen.
            oWord = CreateObject("Word.Application")
            oWord.Visible = True
            oDoc = oWord.Documents.Add
    
            'Absatz am Anfang des Dokuments einfügen.
            oPara1 = oDoc.Content.Paragraphs.Add
            oPara1.Range.Text = "Heading 1"
            oPara1.Range.Font.Bold = True
            oPara1.Format.SpaceAfter = 24    '24 pt-Abstand nach Absatz.
            oPara1.Range.InsertParagraphAfter()
    
            'Absatz am Ende des Dokuments einfügen.
            '** \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()
    
            'Weiteren Absatz einfügen.
            oPara3 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)
            oPara3.Range.Text = "Das ist ein Satz mit normalem Text. Hier ist jetzt eine Tabelle:"
            oPara3.Range.Font.Bold = False
            oPara3.Format.SpaceAfter = 24
            oPara3.Range.InsertParagraphAfter()
    
            'Eine 3-x-5-Tabelle einfügen, mit Daten füllen und die erste Zeile
            'fett und kursiv formatieren.
            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
    
            'Nach der Tabelle etwas Text hinzufügen.
            'oTable.Range.InsertParagraphAfter()
            oPara4 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)
            oPara4.Range.InsertParagraphBefore()
            oPara4.Range.Text = "Und hier ist noch eine Tabelle:"
            oPara4.Format.SpaceAfter = 24
            oPara4.Range.InsertParagraphAfter()
    
            'Eine 5-x-2-Tabelle einfügen, mit Daten füllen und Spaltenbreiten ändern.
            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)   'Breite der Spalten 1 & 2 ändern
            oTable.Columns.Item(2).Width = oWord.InchesToPoints(3)
    
            'Weiteren Text einfügen. Im Abstand von 7 Zoll vom oberen Rand des
            'Dokuments einen Seitenumbruch einfügen.
            Pos = oWord.InchesToPoints(7)
            oDoc.Bookmarks.Item("\endofdoc").Range.InsertParagraphAfter()
            Do
                oRng = oDoc.Bookmarks.Item("\endofdoc").Range
                oRng.ParagraphFormat.SpaceAfter = 6
                oRng.InsertAfter("Eine Textzeile")
                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("Wir sind auf Seite 2. Hier ist mein Diagramm:")
            oRng.InsertParagraphAfter()
    
            'Diagramm einfügen und ändern.
            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()
            'Falls gewünscht, können Sie hier mit dem Microsoft Graph- 
            'Objektmodell für das oChart-Objekt fortfahren, um zusätzliche Änderungen an der
            'Tabelle vorzunehmen.
            oShape.Width = oWord.InchesToPoints(6.25)
            oShape.Height = oWord.InchesToPoints(3.57)
    
            'Nach dem Diagramm Text hinzufügen
            oRng = oDoc.Bookmarks.Item("\endofdoc").Range
            oRng.InsertParagraphAfter()
            oRng.InsertAfter("ENDE.")
    
            'Alles beendet. Dieses Formular schließen.
            Me.Close()
    
        End Sub
  6. Fügen Sie ganz oben in "Form1.vb" den folgenden Code ein:
    Imports Word = Microsoft.Office.Interop.Word
  7. Drücken Sie die Taste [F5], um das Programm erstellen und ausführen zu lassen.
Nach abgeschlossener Ausführung des Codes überprüfen Sie das Dokument, das für Sie erstellt wurde. Das Dokument umfasst zwei Seiten mit formatierten Absätzen, Tabellen und einem Diagramm.

Verwenden einer Vorlage

Wenn Sie die Automatisierung verwenden, um Dokumente zu erstellen, die alle das gleiche Format aufweisen, ist es hilfreich, den Prozess mit einem neuen Dokument zu starten, das auf einer vorformatierten Vorlage basiert. Die Verwendung einer Vorlage in Verbindung mit Ihrem Word-Automatisierungsclient hat gegenüber der Dokumenterstellung ohne jegliche Vorgaben zwei entscheidende Vorteile:
  • Sie können die Formatierung und die Platzierung von Objekten innerhalb Ihres Dokuments besser steuern.
  • Für die Erstellung Ihrer Dokumente ist weniger Code erforderlich.
Durch die Verwendung einer Vorlage ist eine Feinabstimmung in Bezug auf die Positionierung und Formatierung von Tabellen, Absätzen und anderen Objekten in dem Dokument möglich. Mithilfe der Automatisierung können Sie mit einem Code wie dem folgenden ein neues Dokument erstellen, das auf Ihrer Vorlage basiert:
oWord.Documents.Add "<Pfad zur Vorlage>\MyTemplate.dot"
In Ihrer Vorlage können Sie Textmarken wie folgt definieren, damit Ihr Automatisierungsclient variablen Text an einer bestimmten Stelle in dem Dokument einfügen kann:
oDoc.Bookmarks.Item("MyBookmark").Range.Text = "Some Text Here"
Ein weiterer Vorteil der Verwendung einer Vorlage ist, dass Sie wie folgt Formatierungsvorlagen erstellen und speichern können, die zur Laufzeit angewendet werden sollen:
oDoc.Bookmarks.Item("MyBookmark").Range.Style = "MyStyle"
-oder-
oWord.Selection.Style = "MyStyle"

Informationsquellen

Weitere Informationen zur Automatisierung von Microsoft Word mit Visual Basic .NET finden Sie im folgenden Artikel der Microsoft Knowledge Base
301656 Automatisieren von Microsoft Word, um einen Seriendruck mit Visual Basic .NET durchzuführen
Weitere Informationen finden Sie auf den folgenden Microsoft Developer Network (MSDN)-Websites:
Microsoft Office Development with Visual Studio (Microsoft Office-Entwicklung mit Visual Studio)
http://msdn2.microsoft.com/de-de/library/aa188489(office.10).aspx

Word im Office
http://msdn2.microsoft.com/de-de/library/aa201330(office.11).aspx

One More Word
http://msdn2.microsoft.com/de-de/library/aa201332(office.11).aspx
Hinweis Dies ist ein Artikel, der im Schnellverfahren direkt von der Microsoft-Supportorganisation erstellt wurde. Die hierin enthaltenen Informationen werden als Reaktion auf neue Probleme wie besehen bereitgestellt. Da dieser Artikel im Schnellverfahren erstellt wurde, kann er Tippfehler enthalten und zu einem späteren Zeitpunkt ohne vorherige Ankündigung überarbeitet werden. Weitere zu berücksichtigende Informationen finden Sie in den Nutzungsbedingungen.

Eigenschaften

Artikel-ID: 316383 - Geändert am: Mittwoch, 8. Januar 2014 - Version: 1.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Office Word 2007
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2010
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic 2005 Express Edition
  • Microsoft Visual Basic 2008 Express Edition
  • Microsoft Visual Basic 2010 Express
Keywords: 
kbexpertiseinter kbautomation kbhowtomaster KB316383
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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