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:
Erstellen Sie in Visual Basic ein neues Standard EXE-Projekt. Form1 wird standardmäßig erstellt.
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.
Fügen Sie form1 ein CommandButton-Steuerelement hinzu.
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
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.