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

Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
313193 How to Automate Microsoft Word by using Visual Basic to create a new document

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 können:
  • 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 aus ein neues Word-Dokument 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, wählen Sie eine der folgenden Optionen, und klicken Sie dann auf OK:
    • Für Office Word 2007 klicken Sie auf Microsoft Word 12.0 Object Library.
    • Für Word 2003 klicken Sie auf Microsoft Word 11.0 Object Library.
    • Für Word 2002 klicken Sie auf Microsoft Word 10.0 Object Library.
    • Für Word 2000 klicken Sie auf Microsoft Word 9.0 Object Library.
  3. Fügen Sie ein "CommandButton"-Steuerelement (Befehlsschaltfläche) zu Form1 hinzu.
  4. Fügen Sie dem Click-Ereignis für "Command1" 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 die Taste [F5], um das Programm ausführen zu lassen, und klicken Sie dann auf Command1.
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.

Verwendung 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 "<Path to your template>\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("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("MyBookmark").Range.Style = "MyStyle" 
-oder-
 oWord.Selection.Style = "MyStyle" 

Informationsquellen

Weitere Informationen finden Sie in folgenden Artikeln der Microsoft Knowledge Base:
220607 Kann Microsoft Word wie automatisieren, um Seriendruck in Visual Basic durchzuführen
285332 Automatisieren von Word mit Visual Basic zum Erstellen eines Seriendrucks
285333 Word 2002 MailMerge Ereigniscodedemo
Weitere Informationen finden Sie auf den folgenden MSDN-Websites:
Microsoft Office Development with Visual Studio (Microsoft Office-Entwicklung mit Visual Studio)

http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx
(c) Microsoft Corporation 2001, Alle Rechte vorbehalten. Beiträge von Lori B. Turner, Microsoft Corporation.

Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Eigenschaften

Artikelnummer: 313193 – Letzte Überarbeitung: 30.05.2007 – Revision: 1

Feedback