Como automatizar o Microsoft Word utilizando o Visual Basic para criar um novo documento

Traduções de Artigos Traduções de Artigos
Artigo: 313193 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sumário

Este artigo passo a passo descreve como criar um novo documento no Word utilizando a automatização do Visual Basic.

Código de exemplo

O código de exemplo neste artigo demonstra como efectuar o seguinte:
  • Inserir parágrafos com texto e formatação.
  • Procurar e modificar vários intervalos num documento.
  • Inserir tabelas, formatar tabelas e Povoe as tabelas com dados.
  • Adicione um gráfico.
Para criar um novo documento do Word utilizando a automatização do Visual Basic, siga estes passos:
  1. No Visual Basic, crie um novo projecto EXE padrão. É criado o Form1 por predefinição.
  2. No menu projecto , clique em References , clique das seguintes opções e, em seguida, clique em OK :
    • Para o Office Word 2007, clique em Microsoft Word Object Library 12.0 .
    • Para o Word 2003, clique em Microsoft Word 11.0 Object Library .
    • Para o Word 2002, clique em Microsoft Word 10.0 Object Library .
    • Para o Word 2000, clique em Microsoft Word 9.0 Object Library .
  3. Adicione um controlo CommandButton ao Form1.
  4. Adicione o seguinte código ao evento clicar para Command1:
        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.
        Set oWord = CreateObject("Word.Application")
        oWord.Visible = True
        Set oDoc = oWord.Documents.Add
        
        'Insert a paragraph at the beginning of the document.
        Set 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.
        Set oPara2 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks("\endofdoc").Range)
        oPara2.Range.Text = "Heading 2"
        oPara2.Format.SpaceAfter = 6
        oPara2.Range.InsertParagraphAfter
        
        'Insert another paragraph.
        Set oPara3 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks("\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,italic.
        Dim r As Integer, c As Integer
        Set oTable = oDoc.Tables.Add(oDoc.Bookmarks("\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(1).Range.Font.Bold = True
        oTable.Rows(1).Range.Font.Italic = True
        
        'Add some text after the table.
        'oTable.Range.InsertParagraphAfter
        Set oPara4 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks("\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.
        Set oTable = oDoc.Tables.Add(oDoc.Bookmarks("\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(1).Width = oWord.InchesToPoints(2)   'Change width of columns 1 & 2.
        oTable.Columns(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("\endofdoc").Range.InsertParagraphAfter
        Do
            Set oRng = oDoc.Bookmarks("\endofdoc").Range
            oRng.ParagraphFormat.SpaceAfter = 6
            oRng.InsertAfter "A line of text"
            oRng.InsertParagraphAfter
        Loop While Pos >= oRng.Information(wdVerticalPositionRelativeToPage)
        oRng.Collapse (wdCollapseEnd)
        oRng.InsertBreak wdPageBreak
        oRng.Collapse wdCollapseEnd
        oRng.InsertAfter "We're now on page 2. Here's my chart:"
        oRng.InsertParagraphAfter
        
        'Insert a chart and change the chart.
        Set oShape = oDoc.Bookmarks("\endofdoc").Range.InlineShapes.AddOLEObject( _
            ClassType:="MSGraph.Chart.8", FileName _
            :="", LinkToFile:=False, DisplayAsIcon:=False)
        Set 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.
        Set oRng = oDoc.Bookmarks("\endofdoc").Range
        oRng.InsertParagraphAfter
        oRng.InsertAfter "THE END."
    
        'All done. Unload this form.
        Unload Me
    					
  5. Prima F5 para executar o programa e, em seguida, clique em Command1 .
Depois de concluído o código, examine o documento que foi criado. O documento contém duas páginas de parágrafos formatados, tabelas e um gráfico.

Utilizar um modelo

Se estiver usando automatização para criar documentos que estão num formato comum, pode beneficiar de iniciar o processo com um novo documento baseado num modelo pré-formatado. Utilizando um modelo com o cliente de automatização do Word tem duas vantagens significativas através da criação de um documento a partir do nada:
  • Pode ter maior controlo sobre a formatação e posição de objectos ao longo de documentos.
  • Pode criar os seus documentos com menos código.
Utilizando um modelo, pode ajustar o posicionamento de tabelas, parágrafos e outros objectos no documento, bem como incluir formatação esses objectos. Ao utilizar a automatização, pode criar um documento novo baseado no modelo com o código, tal como o seguinte:
oWord.Documents.Add "<Path to your template>\MyTemplate.dot"
				
no modelo, pode definir marcadores para que a automatização de cliente pode introduza o texto variável numa localização específica no documento, como se segue:
oDoc.Bookmarks("MyBookmark").Range.Text = "Some Text Here"
				
outra vantagem utilizando um modelo consiste que pode criar e armazenar estilos de formatação que deseja aplicar durante o tempo de execução, da seguinte forma:
oDoc.Bookmarks("MyBookmark").Range.Style = "MyStyle"
				
- ou -
oWord.Selection.Style = "MyStyle"
				

Referências

Para obter informações adicionais, clique nos números de artigo existentes abaixo para visualizar os artigos na Microsoft Knowledge Base:
220607Como automatizar o Microsoft Word para efectuar a impressão em série a partir do Visual Basic
285332Como automatizar o Word 2002 com o Visual Basic para criar uma impressão em série
285333INFO: O Word 2002 para impressão em série eventos código demonstração
Para mais informações, consulte os seguintes Web sites da Microsoft Developer Network (MSDN):
Desenvolvimento do Microsoft Office com o Visual Studio
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx
(c) Microsoft Corporation 2001, todos os direitos reservados. Contribuições de Lori B. Turner, Microsoft Corporation.

Propriedades

Artigo: 313193 - Última revisão: 16 de abril de 2007 - Revisão: 6.1
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Office Word 2007
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
Palavras-chave: 
kbmt kbexpertiseinter kbautomation kbhowtomaster KB313193 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 313193

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