Exportar datos de Visual basic a Word
Algunas veces cuando desarrollamos aplicaciones es necesario crear reportes, y comúnmente se nos viene a la mente diversas formas de crearlos, muchos programadores que conozco utilizan la aplicación Crystal Reports, aun en mi trabajo el área administrativa utiliza este software, sin embargo algunos no contamos con dicha licencia para crear aplicaciones comerciales, por lo que nos quedan como opciones utilizar MSExcel, o en su caso MSWord, para este post expkicare a grandes rasgos como enviar algunos datos desde VB6 a MSWord.
'declaramos los objetos
Public MSWord As New Word.Application
Public Documento As Object
Private Sub cmd_exportar_click()
'Establecemos la ruta de nuestro archivo
ruta = App.Path & "\orden.doc"
'Seteamos el archivo al objeto documento
Set Documento = MSWord.Documents.Open(ruta)
'opcionalmente podemos guardar el archivo
'en mi caso lo guardo con una extensión diferente (cab|tmp|pot|etc)
MSWord.Selection.Document.SaveAs (App.Path & "\printme.cab"
'Establecemos la fuentre que utilizaremos
MSWord.Selection.Font.Name = "Arial"
'Configuramos la alineacion de nuestro parrafo
MSWord.Selection.Paragraphs.Alignment = wdAlignParagraphCenter
'Activamos la fuente en Negrita
MSWord.Selection.Font.Bold = True
'Y el tamaño a 16 puntos
MSWord.Selection.Font.Size = 16
'con esta opcion podemos comenzar a escribir dentro de nuestro docuemnto
MSWord.Selection.TypeText "Aqui podemos escribir el texto en el documento" & vbCrLf
'Declaramos una tabla de 1 fila por 3 columnas
MSWord.Selection.Tables.Add MSWord.Selection.Range, 1, 3
'Seleccionamos la celda 1,2
MSWord.Selection.Tables(1).Cell(1, 2).Select
'establecemos el ancho de la celda
MSWord.Selection.Tables(1).Cell(1, 2).Width = 70
'configuramos los bordes
MSWord.Selection.Tables(1).Cell(1, 2).Borders(wdBorderTop).Visible = True
MSWord.Selection.Tables(1).Cell(1, 2).Borders(wdBorderLeft).Visible = True
MSWord.Selection.Tables(1).Cell(1, 2).Borders(wdBorderBottom).Visible = True
MSWord.Selection.Tables(1).Cell(1, 2).Borders(wdBorderRight).Visible = True
'Y la alineación del texto dentro de la celda
MSWord.Selection.Paragraphs.Alignment = wdAlignParagraphLeft
'Seguido escribimos texto en dicha celda
MSWord.Selection.TypeText "Nombre"
'seleccionamos la celda 1,3
MSWord.Selection.Tables(1).Cell(1, 3).Select
'Establcemos el color de fondo de la celda (Trama)
MSWord.Selection.Cells.Shading.BackgroundPatternColor = wdColorGray20
'Escribimos en dicha celda
MSWord.Selection.TypeText "nombre2"
'esta opcion nos permite salir de la edición de la tabla, o bajar una fila
MSWord.Selection.MoveDown
'por ultimo mostramos el documento de word
MSWord.Visible = True
'vaciamos los objetos de la memoria
Set documento = nothing
Set Msword=nothing
end sub
con esto podemos establecer los datos del reporte que encesitemos, auqnue es algo mas laborioso que utilizar Crystal Reports, es una opción que hay que tomar en cuenta. espero le sea de ayuda a alguno de los lectores.
saludos (^o^)_v





Anabel said,
May 8, 2008 @ 3:34 pm
Muchas gracias!! lo voy a probar, yo tambien tengo problemas con los reportes y el datareport ademas de ser limitado tiene problemas
Ricardo Vega said,
May 28, 2008 @ 4:01 pm
bueno el aporte muchas gracias, me sirvió, saludos
quique
jorge said,
June 28, 2008 @ 9:25 pm
chido el aporte, gracias amigo me sirvio de mucho sigue asi aportando conocimientos para que este mundo sea cada vez mejor.
Dvorak said,
June 29, 2008 @ 2:59 pm
que bueno que les hay servido el proceso, ya veremos que otro poner mas adelante, saludos
wikiland said,
June 30, 2008 @ 12:58 pm
hola necesito un analisador que tenga lexico, sintactico, y semantico hagan un aporte o envienmelo a mi mail plisss
Dvorak said,
June 30, 2008 @ 1:18 pm
Lo siento en esta pagina no desarrollo proyectos, pero te recomiendo utilizar listas, para tu analizador, probablemente sea mas fácil desarrollarlo en C, C++.
saludos
monica said,
July 3, 2008 @ 9:22 am
Hola, muy buen aporte… el problema que tengo es para insertar los encabezados y pies de página al documento de Word generado desde vb6, siendo los datos utilizados diferentes para cada reporte, ya q se toman datos de la organización. Te agradecería mucho una ayudita con esto…
Saludos
Mónica