Jak automatizovat Word z jazyka Visual Basic .NET vytvořit nový dokument

Microsoft Visual C# .NET verzi tohoto článku naleznete v tématu 316384 .

Microsoft Visual Basic 6.0 verzi tohoto článku naleznete v 313193 .

Souhrn

Tento podrobný článek popisuje vytvoření nového dokumentu v aplikaci Word pomocí automatizace z Visual Basic .NET.

Ukázkový kód

Ukázkový kód v tomto článku ukazuje, jak provést následující akce:
  • Vložte text a formátování odstavce.
  • Procházet a upravovat různé rozsahy v rámci dokumentu.
  • Vložení tabulek, formátování tabulek a naplnění tabulek daty.
  • Přidáte do grafu.
Chcete-li vytvořit nový dokument aplikace Word pomocí automatizace z Visual Basic .NET, postupujte takto:
  1. Spusťte aplikaci Visual Studio .NET. V nabídce soubor klepněte na příkaz Nový a klepněte na příkaz projekt. V části typy projektu klepněte na tlačítko Projekty jazyka Visual Basica potom klepněte na tlačítko Aplikace systému Windows v části šablony. Ve výchozím nastavení je vytvořen formulář Form1.
  2. Přidejte odkaz na Objektové knihovny Microsoft Word. Chcete-li to provést, postupujte takto:
    1. V nabídce projekt klepněte na tlačítko Přidat odkaz.
    2. Na kartě COM vyhledejte Objektové knihovny Microsoft Word a klepněte na tlačítko Vybrat.

      Poznámka: Microsoft Office 2003 a novějších verzích sady Office zahrnují primární sestavení Interop (PIA). Microsoft Office XP nezahrnuje sestavení PIA, ale mohou být staženy.
      Další informace o sestaveních PIA sady Office XP klepněte na následující číslo článku databáze Microsoft Knowledge Base:

      328912 Microsoft Office XP primární sestavení interop (PIA) jsou k dispozici ke stažení

    3. Klepněte na tlačítko OK v dialogovém okně Přidat odkazy potvrďte výběr. Pokud se zobrazí výzva ke generování obálky pro vybrané knihovny, klepněte na tlačítko Ano.
  3. V nabídce Zobrazit vyberte zobrazení panelu nástrojů a pak přidejte tlačítko do formuláře Form1.
  4. Poklepejte na Button1. Zobrazí se okno kód pro formulář.
  5. V okně kódu nahraďte následující kód
        Private Sub Button1_Click(ByVal sender As System.Object, _      ByVal e As System.EventArgs) Handles Button1.Click

    End Sub
    s:
        Private Sub Button1_Click(ByVal sender As System.Object, _      ByVal e As System.EventArgs) Handles Button1.Click

    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.
    oWord = CreateObject("Word.Application")
    oWord.Visible = True
    oDoc = oWord.Documents.Add

    'Insert a paragraph at the beginning of the document.
    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.
    oPara2 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)
    oPara2.Range.Text = "Heading 2"
    oPara2.Format.SpaceAfter = 6
    oPara2.Range.InsertParagraphAfter()

    'Insert another paragraph.
    oPara3 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\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 and italic.
    Dim r As Integer, c As Integer
    oTable = oDoc.Tables.Add(oDoc.Bookmarks.Item("\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.Item(1).Range.Font.Bold = True
    oTable.Rows.Item(1).Range.Font.Italic = True

    'Add some text after the table.
    'oTable.Range.InsertParagraphAfter()
    oPara4 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\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.
    oTable = oDoc.Tables.Add(oDoc.Bookmarks.Item("\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.Item(1).Width = oWord.InchesToPoints(2) 'Change width of columns 1 & 2
    oTable.Columns.Item(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.Item("\endofdoc").Range.InsertParagraphAfter()
    Do
    oRng = oDoc.Bookmarks.Item("\endofdoc").Range
    oRng.ParagraphFormat.SpaceAfter = 6
    oRng.InsertAfter("A line of text")
    oRng.InsertParagraphAfter()
    Loop While Pos >= oRng.Information(Word.WdInformation.wdVerticalPositionRelativeToPage)
    oRng.Collapse(Word.WdCollapseDirection.wdCollapseEnd)
    oRng.InsertBreak(Word.WdBreakType.wdPageBreak)
    oRng.Collapse(Word.WdCollapseDirection.wdCollapseEnd)
    oRng.InsertAfter("We're now on page 2. Here's my chart:")
    oRng.InsertParagraphAfter()

    'Insert a chart and change the chart.
    oShape = oDoc.Bookmarks.Item("\endofdoc").Range.InlineShapes.AddOLEObject( _
    ClassType:="MSGraph.Chart.8", FileName _
    :="", LinkToFile:=False, DisplayAsIcon:=False)
    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.
    oRng = oDoc.Bookmarks.Item("\endofdoc").Range
    oRng.InsertParagraphAfter()
    oRng.InsertAfter("THE END.")

    'All done. Close this form.
    Me.Close()

    End Sub
  6. Přidejte následující kód k horní Form1.vb:
    Imports Word = Microsoft.Office.Interop.Word
  7. Stisknutím klávesy F5 sestavit a spustit program.
Po dokončení kód prozkoumejte dokument, který je vytvořen pro vás. Dokument obsahuje dvě stránky formátované odstavce, tabulky a grafu.

Použít šablonu

Pokud používáte k vytváření dokumentů, které jsou všechny v jednotném formátu automatizace, můžete využít výhod počínaje nový dokument založený na šabloně předformátované proces. Pomocí šablony klienta automatizace aplikace Word má dva významné výhody vytváření dokumentu z nic:
  • Může mít větší kontrolu nad formátování a umístění objektů v celém dokumentu.
  • Je možné vytvořit dokumenty s méně kódu.
Pomocí šablony je možné Vyladění umístění tabulky, odstavce a další objekty v dokumentu, jakož i zahrnutí formátování pro tyto objekty. Pomocí funkce automatizace, můžete vytvořit nový dokument založený na šabloně s následující kód:
oWord.Documents.Add "<Path to your template>\MyTemplate.dot"
Do šablony lze určit záložky tak, aby klient automatizace můžete vyplnit text proměnné na určité místo v dokumentu, takto:
oDoc.Bookmarks.Item("MyBookmark").Range.Text = "Some Text Here"
Další výhodou použití šablony je, že můžete vytvořit a uložit formátování stylů, které chcete použít v době běhu, takto:
oDoc.Bookmarks.Item("MyBookmark").Range.Style = "MyStyle"
- nebo -
oWord.Selection.Style = "MyStyle"

Odkazy

Další informace o automatizaci aplikace Microsoft Word pomocí aplikace Visual Basic .NET klepněte na následující číslo článku databáze Microsoft Knowledge Base:

301656 jak automatizovat Word k provedení hromadné korespondence z aplikace Visual Basic .NET

Další informace naleznete na následujících webech Microsoft Developer Network (MSDN):
Vlastnosti

ID článku: 316383 - Poslední kontrola: 20. 1. 2017 - Revize: 1

Váš názor