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

Zusammenfassung

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

Beispielcode

Der Beispielcode in diesem Artikel veranschaulicht die folgenden Schritte:

  • Einfügen von Absätzen mit Text und Formatierung.
  • Durchsuchen und Ändern verschiedener Bereiche in einem Dokument.
  • Fügen Sie Tabellen ein, formatieren Sie Tabellen, und füllen Sie die Tabellen mit Daten.
  • Fügen Sie ein Diagramm hinzu.

Führen Sie die folgenden Schritte aus, um ein neues Word-Dokument mithilfe der Automatisierung in Visual Basic zu erstellen:

  1. Erstellen Sie in Visual Basic ein neues Standard EXE-Projekt. Form1 wird standardmäßig erstellt.

  2. Klicken Sie im Menü "Projekt " auf"Verweise", klicken Sie auf eine der folgenden Optionen, und klicken Sie dann auf "OK":

    • Klicken Sie für Office Word 2007 auf die Microsoft Word 12.0-Objektbibliothek.
    • Klicken Sie für Word 2003 auf die Microsoft Word 11.0-Objektbibliothek.
    • Klicken Sie für Word 2002 auf die Microsoft Word 10.0-Objektbibliothek.
    • Klicken Sie für Word 2000 auf die Microsoft Word 9.0-Objektbibliothek.
  3. Fügen Sie form1 ein CommandButton-Steuerelement hinzu.

  4. Fügen Sie dem Click-Ereignis für Befehl1 den folgenden Code hinzu:

     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. Drücken Sie F5, um das Programm auszuführen, und klicken Sie dann auf Befehl1.

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

Verwenden einer Vorlage

Wenn Sie Automatisierung zum Erstellen von Dokumenten verwenden, 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 allen 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 formatieren. Mithilfe der Automatisierung können Sie ein neues Dokument basierend auf Ihrer Vorlage mit Folgendem Code erstellen:

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

In Ihrer Vorlage können Sie Lesezeichen definieren, sodass ihr Automatisierungsclient variablen Text an einer bestimmten Stelle im Dokument wie folgt ausfüllen kann:

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

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

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

oder

oWord.Selection.Style = "MyStyle"

References

Wenn Sie weitere Informationen benötigen, klicken Sie auf die folgenden Artikelnummern, um die Artikel in der Microsoft Knowledge Base anzuzeigen:

285332 Automatisieren von Word 2002 mit Visual Basic zum Erstellen eines Seriendrucks

Microsoft Office-Entwicklung mit Visual Studio

(c) Microsoft Corporation 2001, Alle Rechte vorbehalten. Beiträge von Lori B. Turner, Microsoft Corporation.