Sie sind zurzeit offline. Es wird auf die erneute Herstellung einer Internetverbindung gewartet.

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

Der Support für Office 2003 wurde eingestellt

Microsoft stellte am 8. April 2014 den Support für Office 2003 ein. Diese Änderung wirkt sich auf Ihre Softwareupdates und Sicherheitsoptionen aus. Erfahren Sie, was das für Sie bedeutet und wie Sie Ihren Schutz aufrechterhalten können.

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.

WD2007
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: 05/30/2007 17:10:36 – Revision: 6.0

Microsoft Visual Basic 6.0 Professional Edition, Microsoft Office Word 2007, Microsoft Office Word 2003, Microsoft Word 2002 Standard Edition, Microsoft Word 2000 Standard Edition

  • kbexpertiseinter kbautomation kbhowtomaster KB313193
Feedback
g = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write("