Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Resumo
Este artigo passo a passo descreve como criar um novo documento no Word usando a Automação do Visual Basic.
Código de exemplo
O código de exemplo neste artigo demonstra como fazer o seguinte:
- Inserir parágrafos com texto e formatação.
- Navegue e modifique vários intervalos dentro de um documento.
- Insira tabelas, formate tabelas e preencha as tabelas com dados.
- Adicione um gráfico.
Para criar um novo documento do Word usando a Automação do Visual Basic, siga estas etapas:
No Visual Basic, crie um novo projeto EXE Standard. O Form1 é criado por padrão.
No menu Projeto , cliqueem Referências, clique em uma das seguintes opções e clique em OK:
- Para o Office Word 2007, clique em Biblioteca de Objetos do Microsoft Word 12.0.
- Para o Word 2003, clique em Biblioteca de Objetos do Microsoft Word 11.0.
- Para o Word 2002, clique em Biblioteca de Objetos do Microsoft Word 10.0.
- Para o Word 2000, clique na Biblioteca de Objetos do Microsoft Word 9.0.
Adicione um controle CommandButton ao Form1.
Adicione o seguinte código ao evento Click 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
Pressione F5 para executar o programa e clique em Command1.
Depois que o código for concluído, examine o documento que foi 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 que estão 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 em relação à criação de um documento do nada:
- Você pode ter maior controle sobre a formatação e o posicionamento de objetos em todos os 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 formatação nesses objetos. Usando a 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 o cliente de Automação possa preencher o texto variável em um local específico no documento, da seguinte maneira:
oDoc.Bookmarks("MyBookmark").Range.Text = "Some Text Here"
Outra vantagem de 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("MyBookmark").Range.Style = "MyStyle"
ou
oWord.Selection.Style = "MyStyle"
Referências
Para obter informações adicionais, clique nos números de artigo abaixo para exibir os artigos na Base de Dados de Conhecimento Microsoft:
285332 como automatizar o Word 2002 com o Visual Basic para criar uma mala direta
Desenvolvimento do Microsoft Office com o Visual Studio
(c) Microsoft Corporation 2001, Todos os Direitos Reservados. Contribuições de Lori B. Turner, Microsoft Corporation.