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
ACTUALIZACION
Muchas gracias por los comentarios dejados , en esta actualización intentare responder sus preguntas.
P como se hace para añadirle el encabezado y en el mismo un logotipo?
Rodolfo Acosta
… 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….
Mónica
R. Los encabezados los he manejado directamente en archivos maestros, supongamos que en la empresa existen 20 encabezados diferentes.
1.-Creo 20 archivos con los encabezados correspondientes.
2.-Abro un archivo encabezadomaestro1.doc, e inmediatamente hago un ‘Guardar como’ con la instrucción MSWord.Selection.Document.SaveAs, de esta manera conservo el archivo original con el encabezado.
Ppero quisiera saber como puedo hacer para que la aplicación de visual basic habra un documento ya existente y lo modifique, como llenando una plantilla. Por ejemplo un documento word creado que dijera:
Nombre:
Teléfono:
Sebastian
R. Para abrir un documento existente se utiliza la linea. ‘Set Documento = MSWord.Documents.Open(ruta)‘, y se omite la linea ‘MSWord.Selection.Document.SaveAs‘, para añadir texto, MSWord.Selection.TypeText “Nombre”, guardas y listo.
P. … algun comando que simplemente sea para ir a la linea (Enter) en Word…algun pdf, o un link donde pueda encontrar todo lo refernte a este tipo de documentos
Icekooler
R.
Para insertar un enter MSWord.Selection.TypeText vbCrLf , en cuanto al documento PDF, lo he buscado sin exito.
Posted by Dvorak
Posted by Dvorak
Posted by Dvorak 


