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

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 313193 - Produkte anzeigen, auf die sich dieser Artikel bezieht
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
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.
Alles erweitern | Alles schließen

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.

Eigenschaften

Artikel-ID: 313193 - Geändert am: Mittwoch, 30. Mai 2007 - Version: 6.0
Die Informationen in diesem Artikel beziehen sich auf:
  • 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
Keywords: 
kbexpertiseinter kbautomation kbhowtomaster KB313193
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