Cómo automatizar Microsoft Word mediante Visual Basic para crear un nuevo documento

Seleccione idioma Seleccione idioma
Id. de artículo: 313193 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Resumen

Este artículo paso a paso describe cómo crear un nuevo documento en Word utilizando automatización desde Visual Basic.

Código de ejemplo

El código de ejemplo en este artículo muestra cómo hacer lo siguiente:
  • Insertar párrafos con texto y el formato.
  • Examinar y modificar distintos intervalos dentro de un documento.
  • Insertar tablas, tablas de formato y llenar las tablas con datos.
  • Agregar un gráfico.
Para crear un nuevo documento de Word utilizando automatización desde Visual Basic, siga estos pasos:
  1. En Visual Basic, cree un proyecto EXE estándar nuevo. Se creará Form1 de manera predeterminada.
  2. En el menú proyecto , haga clic en referencias , haga clic en una de las siguientes opciones y, a continuación, haga clic en Aceptar :
    • Para Office Word 2007, haga clic en Microsoft Word 12.0 Object Library .
    • Para Word 2003, haga clic en Microsoft Word 11.0 Object Library .
    • Para Word 2002, haga clic en Microsoft Word 10.0 Object Library .
    • Para Word 2000, haga clic en Microsoft Word 9.0 Object Library .
  3. Agregue un control CommandButton a Form1.
  4. Agregue el código siguiente al evento Click de 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. Presione F5 para ejecutar el programa y, a continuación, haga clic en Command1 .
Una vez completado el código, examinar el documento que se ha creado para usted. El documento contiene dos páginas de párrafos con formato, tablas y un gráfico.

Utilizar una plantilla

Si utiliza Automatización para crear documentos que están todas en un formato común, puede beneficiarse de iniciar el proceso con un documento nuevo que se basa en una plantilla con formato previo. Uso una plantilla con el cliente de automatización de Word tiene dos ventajas importantes sobre la creación de un documento desde nada:
  • Puede tener mayor control sobre el formato y selección de ubicación de objetos a través de los documentos.
  • Puede crear sus documentos con menos código.
Utilizando una plantilla, puede ajustar selección de ubicación de tablas, párrafos y otros objetos dentro del documento, así como incluir formato en esos objetos. Mediante la automatización, puede crear un nuevo documento basándose en su plantilla con código such as lo siguiente:
oWord.Documents.Add "<Path to your template>\MyTemplate.dot"
				
en su plantilla, pueden definir marcadores por lo que la automatización en el cliente puede rellenar texto variable en una ubicación específica en el documento, como sigue:
oDoc.Bookmarks("MyBookmark").Range.Text = "Some Text Here"
				
otra ventaja de utilizar una plantilla es que puede crear y almacenar los estilos de formato que desea aplicar en tiempo de ejecución, como sigue:
oDoc.Bookmarks("MyBookmark").Range.Style = "MyStyle"
				
- o -
oWord.Selection.Style = "MyStyle"
				

Referencias

Para obtener información adicional, haga clic en los números de artículo correspondientes para verlos en Microsoft Knowledge Base:
220607Cómo automatizar Microsoft Word para que realice combinación de correspondencia desde Visual Basic
285332Cómo automatizar Word 2002 con Visual Basic para crear una combinación de correspondencia
285333INFORMACIÓN: Demostración de código de evento Word 2002 MailMerge
Para obtener más información, consulte los sitios Web de Microsoft Developer Network (MSDN) siguientes:
Desarrollo de Microsoft Office con Visual Studio
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx
(c) Microsoft Corporation 2001, reservados todos los derechos. Contribuciones por Lori B. Turner, Microsoft Corporation.

Propiedades

Id. de artículo: 313193 - Última revisión: lunes, 16 de abril de 2007 - Versión: 6.1
La información de este artículo se refiere 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
Palabras clave: 
kbmt kbexpertiseinter kbautomation kbhowtomaster KB313193 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 313193

Enviar comentarios

 

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