Cómo automatizar Word desde Visual Basic .NET para crear un nuevo documento

Seleccione idioma Seleccione idioma
Id. de artículo: 316383 - Ver los productos a los que se aplica este artículo
Para obtener una versión de Microsoft Visual C# .NET de este artículo, consulte 316384.
Para Microsoft Visual Basic la versión 6.0 de este artículo, consulte 313193.
Expandir todo | Contraer todo

En esta página

Resumen

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

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. NET, siga estos pasos:
  1. Inicie Microsoft Visual Studio NET.. En el menú archivo , haga clic en nuevo y, a continuación, haga clic en proyecto . En tipos de proyecto haga clic en Proyectos de Visual Basic , haga clic en Aplicación para Windows , bajo plantillas . Se creará Form1 de manera predeterminada.
  2. Agregue una referencia a la Biblioteca de objetos de Word . Para ello, siga estos pasos:
    1. En el menú proyecto , haga clic en Agregar referencia .
    2. En la ficha COM , busque la Biblioteca de objetos de Microsoft Word y haga clic en seleccionar .

      Nota Microsoft Office 2003 y versiones posteriores de Office incluyen a Primary Interop Assemblies (PIA). Microsoft Office XP no incluye PIA, pero se se puede descargar. Para obtener más información acerca de los PIA de Office XP, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
      328912Microsoft Office XP ensamblados de interoperabilidad primarios (PIA) están disponibles para descarga
    3. Haga clic en Aceptar en el cuadro de diálogo Agregar referencias para aceptar sus selecciones. Si recibe un mensaje para generar contenedores para las bibliotecas que ha seleccionado, haga clic en .
  3. En el menú Ver , elija cuadro de herramientas para mostrar el cuadro de herramientas y, a continuación, agregue un botón a Form1.
  4. Haga doble clic en Button1 . Aparece la ventana de código del formulario.
  5. En la ventana de código, reemplace el código siguiente
        Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
    
        End Sub
    con:
        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. Agregue el código siguiente al principio de Form1.vb:
    Imports Word = Microsoft.Office.Interop.Word
  7. Presione F5 para generar y ejecutar el programa.
Una vez completado el código, examinar el documento que creó 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.Item("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.Item("MyBookmark").Range.Style = "MyStyle"
- o -
oWord.Selection.Style = "MyStyle"

Referencias

Para obtener más información sobre cómo utilizar Visual Basic .NET para automatizar Microsoft Word, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
301656Cómo automatizar Word para realizar una combinación de correspondencia desde Visual Basic .NET
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

Word de la oficina
http://msdn2.microsoft.com/en-us/library/aa201330(office.11).aspx

Word más uno
http://msdn2.microsoft.com/en-us/library/aa201332(office.11).aspx

Propiedades

Id. de artículo: 316383 - Última revisión: jueves, 24 de mayo de 2007 - Versión: 11.1
La información de este artículo se refiere a:
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Office Word 2007
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
Palabras clave: 
kbmt kbexpertiseinter kbautomation kbhowtomaster KB316383 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): 316383

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