Entrar com a conta da Microsoft
Entrar ou criar uma conta.
Olá,
Selecionar uma conta diferente.
Você tem várias contas
Escolha a conta com a qual você deseja entrar.

Para obter uma versão do .NET do Microsoft Visual C# deste artigo, consulte 316384.
 

Para obter uma versão do Microsoft Visual Basic 6.0 deste artigo, consulte 313193.
 

Resumo

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:

  • Insira parágrafos com texto e formatação.

  • Navegue e modifique vários intervalos em um documento.

  • Insira tabelas, formate 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 clique em Projeto. Em Tipos de projeto, clique em Projetos Do Visual Basic e clique em Aplicativo windows em Modelos. O Form1 é criado por padrão.

  2. Adicione uma referência à Biblioteca de Objetos do Microsoft Word. Para fazer isso, siga estas etapas:

    1. No menu Project, clique em Add Reference.

    2. Na guia COM, localize a Biblioteca de Objetos do Microsoft Word e clique em Selecionar.

      Observação O Microsoft Office 2003 e versões posteriores do Office incluem PIAs (assemblies de interoperabilidade primário). O Microsoft Office XP não inclui PIAs, mas podem ser baixados.
       

    3. Clique em OK na caixa de diálogo Adicionar Referências para aceitar suas seleções. Se você receber um prompt para gerar wrappers para as bibliotecas selecionadas, clique em Sim.

  3. No menu Exibir, selecione Caixa de Ferramentas para exibir a Caixa de Ferramentas e adicione um botão ao Form1.

  4. Clique duas vezes em Botão1. A janela de código do formulário é exibida.

  5. Na janela de 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 criar e executar o programa.

Após a conclusão do código, examine o documento 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 a Automação para criar documentos todos em um formato comum, poderá se beneficiar de iniciar o processo com um novo documento baseado em um modelo pré-formatado. Usar um modelo com seu cliente de Automação do Word tem duas vantagens significativas sobre a criação de um documento do nada:

  • Você pode ter maior controle sobre a formatação e posicionamento de objetos em todos os documentos.

  • Você pode criar seus documentos com menos código.

Usando um modelo, você pode ajustar a colocação de tabelas, parágrafos e outros objetos dentro do documento, bem como incluir a formatação nesses objetos. Usando Automação, você pode criar um novo documento com base em seu modelo com código, como o seguinte:

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

Em seu modelo, você pode definir indicadores para que seu cliente de Automação possa preencher texto variável em um local específico no documento, da seguinte maneira:

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

Outra vantagem para usar um modelo é que você pode criar e armazenar estilos de formatação que deseja aplicar em tempo de execução, da seguinte maneira:

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

-ou-

oWord.Selection.Style = "MyStyle"

Referências

Para obter mais informações sobre como usar o Visual Basic .NET para automatizar o Microsoft Word, clique no seguinte número de artigo para exibir o artigo na Base de Dados de Conhecimento da Microsoft:

301656 Como automatizar o Word para executar uma mesclagem de email do Visual Basic .NET

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?
Ao pressionar enviar, seus comentários serão usados para aprimorar os produtos e serviços da Microsoft. Seu administrador de TI poderá coletar esses dados. Política de Privacidade.

Agradecemos seus comentários!

×