Como automatizar o Word do Visual Basic .NET para criar um novo documento

Traduções deste artigo Traduções deste artigo
ID do artigo: 316383 - Exibir os produtos aos quais esse artigo se aplica.
Para obter uma Microsoft Visual translation from VPE for Csharp .NET versão deste artigo, consulte 316384.
Para um Microsoft Visual Basic versão 6.0 neste artigo, consulte 313193.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo passo a passo descreve como criar um novo documento no Word usando automação do Visual Basic. NET.

Código de exemplo

O código de exemplo neste artigo demonstra como fazer o seguinte:
  • Inserir parágrafos com formatação e texto.
  • Procurar e modificar vários intervalos dentro de um documento.
  • Inserir tabelas, Formatar tabelas e preencha as tabelas com dados.
  • Adicione um gráfico.
Para criar um novo documento do Word usando automação do Visual Basic .NET, siga estas etapas:
  1. Inicie o Microsoft Visual Studio NET.. No menu arquivo , clique em novo e, em seguida, clique em Project . Clique em Project types em Projetos do Visual Basic , clique Windows Application em modelos . O Form1 é criado por padrão.
  2. Adicione uma referência ao Microsoft Word Object Library . Para fazer isso, execute as seguintes etapas:
    1. No menu Project , clique em Add Reference .
    2. Na guia COM , localize a Biblioteca de objetos Microsoft Word e clique em Selecionar .

      Observação Microsoft Office 2003 e versões posteriores do Office incluem assemblies de interoperabilidade primários (PIAs). Microsoft Office XP não inclui PIAs, mas eles podem ser baixados. Para obter mais informações sobre PIAs do Office XP, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
      328912Microsoft Office XP módulos de interoperabilidade primários (PIAs) estão disponíveis para download
    3. Clique em OK na caixa de diálogo Add References para aceitar as seleções. Se você receber uma solicitação para gerar wrappers para as bibliotecas que você selecionou, clique em Sim .
  3. No menu Exibir , selecione a caixa de ferramentas para exibir a caixa de ferramentas e, em seguida, adicione um botão ao Form1.
  4. Clique duas vezes em Button1 . A janela de código para o formulário é exibida.
  5. Na janela código, substitua o código a seguir
        Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
    
        End Sub
    com:
        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. Adicione o seguinte código à parte superior do Form1.vb:
    Imports Word = Microsoft.Office.Interop.Word
  7. Pressione F5 para compilar e executar o programa.
Depois que o código for concluída, examine o documento que é criado para você. O documento contém duas páginas de parágrafos formatados, tabelas e um gráfico.

Usar um modelo

Se você estiver usando automação para criar documentos que estão em um formato comum, você pode se beneficiar de iniciar o processo com um novo documento baseado em um modelo pré-formatado. Usando um modelo com seu cliente de automação do Word tem duas vantagens significativas sobre criação de um documento do nada:
  • Você pode ter maior controle sobre a formatação e posicionamento de objetos em seus documentos.
  • Você pode criar seus documentos com menos código.
Usando um modelo, você pode ajustar o posicionamento de tabelas, parágrafos e outros objetos dentro do documento, bem como incluir esses objetos de formatação. Usando automação, você pode criar um novo documento baseado no seu modelo com o código, como a seguir:
oWord.Documents.Add "<Path to your template>\MyTemplate.dot"
em seu modelo, você pode definir indicadores para que sua automação cliente pode preencher texto variável em um local específico no documento, como segue:
oDoc.Bookmarks.Item("MyBookmark").Range.Text = "Some Text Here"
outra vantagem de usar um modelo é que você pode criar e armazenar estilos de formatação que você deseja aplicar em tempo de execução, como a seguir:
oDoc.Bookmarks.Item("MyBookmark").Range.Style = "MyStyle"
- ou -
oWord.Selection.Style = "MyStyle"

Referências

Para obter mais informações sobre como usar Visual Basic .NET para automatizar o Microsoft Word, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
301656Como automatizar o Word para criar uma mala direta do Visual Basic .NET
Para obter mais informações, consulte os seguintes sites do Microsoft Developer Network (MSDN) da:
Microsoft Office Development com Visual Studio
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx

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

Word mais um
http://msdn2.microsoft.com/en-us/library/aa201332(office.11).aspx

Propriedades

ID do artigo: 316383 - Última revisão: quinta-feira, 24 de maio de 2007 - Revisão: 11.1
A informação contida neste artigo aplica-se a:
  • 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
Palavras-chave: 
kbmt kbexpertiseinter kbautomation kbhowtomaster KB316383 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 316383

Submeter comentários

 

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