Automatizace aplikace Microsoft Word pomocí jazyka Visual Basic k vytvoření nového dokumentu

Souhrn

Tento podrobný článek popisuje, jak vytvořit nový dokument ve Wordu pomocí automatizace z jazyka Visual Basic.

Ukázkový kód

Ukázkový kód v tomto článku ukazuje, jak postupovat takto:

  • Vložte odstavce s textem a formátováním.
  • Umožňuje procházet a upravovat různé rozsahy v dokumentu.
  • Vkládejte tabulky, formátujte tabulky a naplňte tabulky daty.
  • Přidejte graf.

Chcete-li vytvořit nový dokument aplikace Word pomocí automatizace z jazyka Visual Basic, postupujte takto:

  1. V jazyce Visual Basic vytvořte nový projekt Standard EXE. Formulář1 je ve výchozím nastavení vytvořen.

  2. V nabídce Projekt klepněte na příkazOdkazy, klepněte na jednu z následujících možností a potom klepněte na tlačítko OK:

    • V aplikaci Office Word 2007 klepněte na položku Knihovna objektů aplikace Microsoft Word 12.0.
    • V aplikaci Word 2003 klepněte na položku Knihovna objektů aplikace Microsoft Word 11.0.
    • V aplikaci Word 2002 klepněte na položku Knihovna objektů aplikace Microsoft Word 10.0.
    • V aplikaci Word 2000 klepněte na položku Knihovna objektů aplikace Microsoft Word 9.0.
  3. Přidejte ovládací prvek CommandButton do form1.

  4. Přidejte následující kód do události Click pro Command1:

     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. Stisknutím klávesy F5 spusťte program a potom klikněte na příkaz Command1.

Po dokončení kódu zkontrolujte dokument, který jste vytvořili za vás. Dokument obsahuje dvě stránky formátovaných odstavců, tabulek a grafu.

Použití šablony

Pokud k vytváření dokumentů ve společném formátu používáte službu Automation, můžete využít výhod zahájení procesu pomocí nového dokumentu založeného na předformátované šabloně. Použití šablony s klientem služby Word Automation má oproti vytváření dokumentu dvě významné výhody:

  • Můžete mít větší kontrolu nad formátováním a umístěním objektů v dokumentech.
  • Dokumenty můžete vytvářet s menším množstvím kódu.

Pomocí šablony můžete vyladit umístění tabulek, odstavců a dalších objektů v dokumentu a také formátování těchto objektů. Pomocí služby Automation můžete vytvořit nový dokument založený na šabloně s následujícím kódem:

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

V šabloně můžete definovat záložky, aby klient služby Automation mohl vyplnit text proměnné v určitém umístění v dokumentu následujícím způsobem:

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

Další výhodou použití šablony je, že můžete vytvořit a uložit styly formátování, které chcete použít za běhu, a to následujícím způsobem:

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

nebo

oWord.Selection.Style = "MyStyle"

Odkazy

Další informace získáte v následujících článcích znalostní báze Microsoft Knowledge Base:

285332 Jak automatizovat Word 2002 pomocí jazyka Visual Basic vytvořit hromadnou korespondenci

Vývoj pro Microsoft Office pomocí sady Visual Studio

(c) Microsoft Corporation 2001, Všechna práva vyhrazena. Příspěvky lori B. Turner, Microsoft Corporation.