Iniciar sessão com a Microsoft
Iniciar sessão ou criar uma conta.
Olá,
Selecione uma conta diferente.
Tem várias contas
Selecione a conta com a qual pretende iniciar sessão.

Para obter uma versão .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 com a Automatizaçã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 texto e formatação.

  • Procurar e modificar vários intervalos num documento.

  • Insira tabelas, formate tabelas e preencha as tabelas com dados.

  • Adicionar um gráfico.

Para criar um novo documento do Word com a Automatização do Visual Basic .NET, siga estes passos:

  1. Inicie o Microsoft Visual Studio .NET. No menu Ficheiro, clique em Novo e, em seguida, clique em Projeto. Em Tipos de projeto, clique em Projetos Do Visual Basic e, em seguida, clique em Aplicação do Windows em Modelos. O Formulário1 é criado por predefinição.

  2. Adicione uma referência à Biblioteca de Objetos do Microsoft Word. Para tal, siga estes passos:

    1. No menu Projeto, clique em Adicionar Referência.

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

      Tenha em atenção que o Microsoft Office 2003 e versões posteriores do Office incluem Assemblagens Interop Primárias (PIAs). O Microsoft Office XP não inclui PIAs, mas podem ser transferidos.
       

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

  3. No menu Ver, selecione Caixa de Ferramentas para apresentar a Caixa de Ferramentas e, em seguida, adicione um botão ao Formulário1.

  4. Faça duplo clique em Botão1. É apresentada a janela de código do formulário.

  5. Na janela de código, substitua o seguinte código

        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 de Form1.vb:

    Imports Word = Microsoft.Office.Interop.Word
  7. Prima F5 para criar e executar o programa.

Após a conclusão do código, examine o documento que é criado para si. O documento contém duas páginas de parágrafos formatados, tabelas e um gráfico.

Utilizar um modelo

Se estiver a utilizar a Automatização para criar documentos que estão todos num formato comum, pode beneficiar de iniciar o processo com um novo documento baseado num modelo pré-formatado. A utilização de um modelo com o seu cliente de Automatização do Word tem duas vantagens significativas em relação à criação de um documento do nada:

  • Pode ter um maior controlo sobre a formatação e colocação de objetos em todos os seus documentos.

  • Pode criar os seus documentos com menos código.

Ao utilizar um modelo, pode ajustar o posicionamento de tabelas, parágrafos e outros objetos no documento, bem como incluir formatação nesses objetos. Ao utilizar a Automatização, pode criar um novo documento com base no seu modelo com código, como o seguinte:

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

No seu modelo, pode definir marcadores para que o cliente de Automatização possa preencher texto variável numa localização específica no documento, da seguinte forma:

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

Outra vantagem de utilizar um modelo é que pode criar e armazenar estilos de formatação que pretende aplicar no tempo de execução, da seguinte forma:

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

-ou-

oWord.Selection.Style = "MyStyle"

Referências

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

301656 Como automatizar o Word para efetuar uma impressão em série a partir do Visual Basic .NET

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.

Estas informações foram úteis?

Quão satisfeito está com a qualidade do idioma?
O que afetou a sua experiência?
Ao selecionar submeter, o seu feedback será utilizado para melhorar os produtos e serviços da Microsoft. O seu administrador de TI poderá recolher estes dados. Declaração de Privacidade.

Obrigado pelo seu feedback!

×