Está en la página 1de 4

20/2/2014

Generar un archivo de Word desde VBA Excel Excel Avanzado

Generar un archivo de Word desde VBA Excel


06/05/2012 by Fernando Santos | 2 Comments Si bien los clculos y tablas se realizan en Excel, algunos informes o resmenes deben ser presentados en Word, y si se trata de cientos o miles de clientes o items, de nada serviria haber optimizado el tiempo durante los clculos utilizando una macro si se debe ingresar los datos del excel en el word de manera manual. El siguiente cdigo permite leer una tabla ubicada en este caso en la hoja 1, con una relacin de todos los cursos de la curricula de la PUCP. Tambien se incluyen la fecha, hora y nota promedio de los exmenes parciales, y generar un archivo de word individual por cada curso, indicando la nota promedio del mismo, algunos datos propios del da del examen y finalmente indica la fecha en que se gener el reporte. Al inicio se declar el option explicit, en vista que se programara utilizando word y excel, esta opcion nos obliga a declarar todas las variables, asi que es util al momento de depurar la macro. Ademas se seleccionan las siguientes referencias del menu Herramientas: Microsoft Scripting RunTime y Microsof Word Object Library, ya que se citaran archivos externos. Luego se definen las siguientes variables : wordapp que se refiere al archivo creado para cada curso donde se grabara la informacion y fs que como filesystem object permitira guardar el archivo de word generado en una determinada direccin.

Option Explicit Private Sub CommandButton1_Click()


http://www.excel-avanzado.com/2159/generar-archivo-word-desde-vba.html 1/4

20/2/2014

Generar un archivo de Word desde VBA Excel Excel Avanzado

Dim wordapp As Word.Application Dim fs As FileSystemObject Dim documento As Document, objselection As Selection Dim camino As String Dim fila, i As Integer Const minimo As Integer = 13 Set wordapp = New Word.Application Set fs = New FileSystemObject Range(A2).Select fila = Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To fila Dim nota As Integer Dim curso, fecha, dia, aula As String nota = ThisWorkbook.Worksheets(1).Cells(i, 8).Value If nota <= minimo Then Else curso = ThisWorkbook.Worksheets(1).Cells(i, 1).Value fecha = ThisWorkbook.Worksheets(1).Cells(i, 3).Value dia = ThisWorkbook.Worksheets(1).Cells(i, 4).Value aula = ThisWorkbook.Worksheets(1).Cells(i, 5).Value Set documento = wordapp.Documents.Add Set objselection = wordapp.Selection objselection.Font.Bold = True objselection.TypeText Comunicado Promedio De Curso Call espacios(objselection, 1) objselection.TypeText COMUNICADO DE FACULTAD objselection.Font.Bold = False Call espacios(objselection, 1) objselection.TypeText El promedio del examen del curso de & curso & realizado el dia & dia & & fecha & en el aula & aula objselection.Font.Bold = True objselection.TypeText fue de & nota Call espacios(objselection, 10) objselection.TypeText Lima a fecha & Date & . camino = ThisWorkbook.Path & & curso If fs.FolderExists(camino) = False Then fs.CreateFolder (camino) End If documento.SaveAs Filename:=camino & & curso & .doc, _ FileFormat:=wdFormatDocument documento.Close savechanges:=True End If Next i wordapp.Application.Quit Set fs = Nothing Set objselection = Nothing Set documento = Nothing Set wordapp = Nothing End Sub Public Sub espacios(seleccion As Selection, lineas As Integer) Dim i As Integer For i = 1 To lineas seleccion.TypeParagraph Next End Sub El modulo de espacios sirve para generar lineas entre parrafos. Tambien se consideran formatos como negrita. Solo se elige generar el archivo de word para aquellos cursos cuyo promedio es mayor a 13. Los archivos se crean en la misma carpeta que se encuentra el libro de excel en donde se trabaja

http://www.excel-avanzado.com/2159/generar-archivo-word-desde-vba.html

2/4

20/2/2014

Generar un archivo de Word desde VBA Excel Excel Avanzado

Finalmente se aprecia en el archivo de word generado

Elaborado por: Jacques Sovero

Publicaciones relacionadas:

Cmo crear un Copiar un Uso y propiedades Ejemplo de uso de archivo en word contenido de Excel del Checkbox IF then else (desde desde vba excel a Word (desde una hoja formulario) Categories: Integracin con office | Tags: word con macros, word con vba | Permalink excel)

Funcin Format

http://www.excel-avanzado.com/2159/generar-archivo-word-desde-vba.html

3/4

20/2/2014

Generar un archivo de Word desde VBA Excel Excel Avanzado

2 Comments
Leave a reply 1. Jose 23/08/2012 at 9:18 am Hola, muy buen aporte. Podrias adjuntar el archivo con el cual trabaja la Macro? te lo agradeceria mucho, pues asi podria entender mejor el procedimiento que sigue ya que recien me he iniciado en el Mundo del Excel. Gracias. Responder 2. Juan Eduardo Gonzalez Mejia 16/08/2013 at 4:26 pm Hola, Muchas gracias por toda esta informacin colocas ac he estado averiguando y tengo un problema en excel no aparece la opcin FileSystemObject, mira esto, http://support.microsoft.com/kb/186118/es . Esta parte del programa no me queda muy claro que hace, esto es absolutamente necesario? que implicaciones tendria no programar con esta parte? un saludo y muchas gracias Responder

Deja un comentario
Required fields are marked *. Nombre * Correo electrnico * Web Message *

Publicar comentario

Todos los derechos reservados por ProgramasPeru.com Ir al Inicio de esta Pgina

http://www.excel-avanzado.com/2159/generar-archivo-word-desde-vba.html

4/4