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

Překlady článku Překlady článku
ID článku: 316383 - Produkty, které se vztahují k tomuto článku.
Microsoft Visual C# .NET verzi tohoto článku naleznete 316384.
Pro Microsoft Visual Basic 6.0 verze tohoto článku naleznete 313193.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

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

Ukázkový kód

V tomto článku ukázkový kód demonstruje proveďte následující:
  • Vložit odstavce s textem a formátování.
  • 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ání grafu.
Vytvořit nový dokument 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. Ve skupinovém rámečku Project typyProjekty jazyka klepněte na příkaz Aplikace Windows v části šablony. Jako výchozí je vytvořen formulář Form1.
  2. Přidat odkaz Objektové knihovny Microsoft Word. Postupujte takto:
    1. V nabídce projekt klepněte na tlačítko Přidat odkaz.
    2. Na kartě COM najít Knihovna objektů aplikace a klepněte na tlačítko Vybrat.

      Poznámka: Microsoft Office 2003 a novější verze systému Office zahrnují primární sestavení InterOp (PIA). Microsoft Office XP nezahrnuje PIA, ale mohou být staženy. Další informace o sestaveních PIA sady Office XP naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
      328912Primární sestavení InterOp (PIA) sady Office XP jsou k dispozici ke stažení
    3. Klepněte na tlačítko OK v dialogovém okně Přidat odkazy přijmout vaše výběry. 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 panel zobrazení panelu a potom přidat tlačítko Form1.
  4. Poklepejte na Button1. Zobrazí se okno s kódem 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 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 dokumentu, který je pro vás vytvořen. Dokument obsahuje dvě stránky formátované odstavce, tabulky a grafu.

Použít šablonu

Vytvořit dokumenty, které jsou všechny v společný formát pomocí automatizace, jste můžete výhodou počínaje nový dokument, který je založen na šabloně předformátované proces. Pomocí šablony s klientem automatizace Word má dva významné výhody vytváření dokumentu z nic:
  • Můžete mít větší kontrolu nad formátování a umístění objektů v celém dokumenty.
  • Můžete vytvořit dokumenty s méně kód.
Pomocí šablony je možné Vyladění umístění tabulky, odstavce a další objekty v rámci dokumentu, stejně jako Zahrnout formátování pro tyto objekty. Pomocí automatizace můžete vytvořit nový dokument založený na šabloně s například následující kód:
oWord.Documents.Add "<Path to your template>\MyTemplate.dot"
v šabloně, můžete definovat záložky tak, aby vaše automatizace klienta můžete vyplnit proměnné text v určitém místě v dokumentu, jako následuje:
oDoc.Bookmarks.Item("MyBookmark").Range.Text = "Some Text Here"
jiný výhodou pomocí šablony je vytvoření a uložení stylů formátování, které chcete použít v době spuštění následovně:
oDoc.Bookmarks.Item("MyBookmark").Range.Style = "MyStyle"
- nebo -
oWord.Selection.Style = "MyStyle"

Odkazy

Další informace o použití k automatizaci aplikace Visual Basic .NET klepněte na následující číslo článku databáze Microsoft Knowledge Base:
301656Jak automatizovat Word hromadné korespondence z jazyka .NET
Další informace naleznete na následující webové servery Microsoft Developer Network (MSDN):
Microsoft Office Development s Visual Studio
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx

Word Office
http://msdn2.microsoft.com/en-us/library/aa201330(office.11).aspx

Jeden další Word
http://msdn2.microsoft.com/en-us/library/aa201332(office.11).aspx

Vlastnosti

ID článku: 316383 - Poslední aktualizace: 24. května 2007 - Revize: 11.1
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Office Word 2007
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
Klíčová slova: 
kbmt kbexpertiseinter kbautomation kbhowtomaster KB316383 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:316383

Dejte nám zpětnou vazbu

 

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