Inicio > Visual Basic > popicinio > vb y word

vb y word

Experto:
Usuario:
Fecha: 07/11/2009
Valoración: (4,00 sobre 5) Categoría: Visual Basic
07/11/2009
jorpan, usuario preguntando en Visual Basic
Usuario
Hola:
estoy haciendo un programa don pido unos datos al usuario mediante cajas de texto y quiero mandar estos datos a una plantilla word, pero no sé cómo hacerlo ni cómo mandarlos al lugar de la plantilla correcto. ¿Tendrías algún programa ejemplo? gracias.
07/11/2009
jorpan, experto respondiendo en Visual Basic
Experto
Hola:

¿Tiene que ser el Word, no puede ser el Excel?, Te lo pregunto porque con el word es increiblemente complicado encontrar las posiciones de los caracteres, parrafos, etc... y con el excel es bastante mas facil encontrar la posicion ya que le mandas los datos a una celda

De todas maneras te mando el codigo de un pequeño ejemplo de como usar Word y Excel con Visual Basic, si me pasas tu direccion de correo te lo envio.

El proyecto se compone de un formulario con dos CommandButton y dos TextBox, para crear la instancia al word y al Excel puedes utilizar CreateObject("word.application") pero yo prefiero crearlos poniendolos en las referencias asi que en las referencias del proyecto deberas añadir el Microsoft Excel 8.0 Object Library (Excel8.olb) y el Microsoft Word 8.0 Object Library (Msword8.olb) los archivos suelen estar en el directorio del Office, el codigo del formulario seria el siguiente:


Option Explicit

Private Sub cmdExcel_Click()
'En este ejemplo se crea un nuevo libro y se guarda
'si lo que quieres es abrir una plantilla deberas utilizar Open en vez de Add
'y luego al guardar el libro ponerle un nombre distinto al de la plantilla
'Variables que utilizaremos
Dim AppExcel As New Excel.Application
Dim Libro As Excel.Workbook
Dim Hoja As Excel.Worksheet
'Si queremos que se vea el proceso en pantalla
AppExcel.Visible = True
'Creamos un nuevo libro
Set Libro = AppExcel.Workbooks.Add
'Establecemos la hoja que utilizaremos
Set Hoja = Libro.Worksheets(1)
'Le cambiamos el nombre
Hoja.Name = "Ejemplo desde VB"
'Ponemos en la Celda A1 el nombre del text1
Hoja.Cells(1, 1).FormulaR1C1 = Text1.Name
'Ponemos en la Celda A2 el nombre del text1
Hoja.Cells(2, 1).FormulaR1C1 = Text1.Name
'Ponemos el texto de cada control en sus celdas
Hoja.Cells(1, 2).FormulaR1C1 = Text1.Text
Hoja.Cells(2, 2).FormulaR1C1 = Text2.Text
'Guardamos el libro
Libro.SaveAs ("c:\pruebaVB.xls")
'Cerramos la aplicacion y liberamos los objetos
AppExcel.Quit
Set Hoja = Nothing
Set Libro = Nothing
Set AppExcel = Nothing
End Sub

Private Sub cmdWord_Click()
'Variables que utilizaremos
Dim AppWord As New Word.Application
Dim Documento As Word.Document
Dim Rango As Word.Range
Dim Parrafo As Paragraph
'Si queremos que se vea en la pantalla
AppWord.Visible = True
'Creamos un nuevo documento
Set Documento = AppWord.Documents.Add
'Ponemos un titulillo
Set Rango = Documento.Sections(1).Range
Rango.ParagraphFormat.Alignment = wdAlignParagraphCenter
Rango.Font.Size = 24
Rango.Font.Bold = True
Rango.Text = "Probando desde VB"
'Pones la siguiente linea
Set Parrafo = Documento.Paragraphs.Add
Set Rango = Parrafo.Range.Next
Rango.ParagraphFormat.Alignment = wdAlignParagraphLeft
Rango.Font.ColorIndex = wdRed
Rango.Font.Size = 16
Rango.Fields.Add Rango, Word.wdFieldComments, Text1.Text
Rango.InsertBefore ("El valor de Text1= ")
'Pones la siguiente linea
Set Parrafo = Documento.Paragraphs.Add
Set Rango = Parrafo.Range.Next
Rango.ParagraphFormat.Alignment = wdAlignParagraphLeft
Rango.Font.ColorIndex = wdRed
Rango.Font.Size = 16
Rango.Fields.Add Rango, Word.wdFieldComments, Text2.Text
Rango.InsertBefore ("El valor de Text2= ")

'Guardamos el documento
Documento.SaveAs "C:\prueba.doc"
'Cerramos la aplicacion
AppWord.Quit
'Descargamos los objetos
Set Documento = Nothing
Set Rango = Nothing
Set Parrafo = Nothing
Set AppWord = Nothing

End Sub

Espero que te sirva.
Saludos

07/11/2009
jorpan, usuario preguntando en Visual Basic
Usuario
Muy Bien. Me ha sido de gran utilidad
Enlaces patrocinados