20/2/2014
Gener ar un ar chivo de Wor d desde VBA Excel « Excel Avanzado
Generar Ge nerar un un archivo de Word desde VBA Excel 06/05/2012 by Fernando Santos | 2 Comments Si bien los cálculos y tablas se realizan en Excel, algunos informes o resúmenes 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 cálculos utilizando una macro si se debe ingresar los datos del excel en el word de manera manual. El siguiente código permite leer una tabla ubicada en este caso en la hoja 1, con una relación de todos los cursos de la curricula de la PUCP. Tambien se incluyen la fecha, hora y nota promedio de los exámenes parciales, y generar un archivo de word individual por cada curso, indicando la nota promedio del mismo, algunos datos propios del día 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 dirección.
Option Explicit Private Sub CommandButton1_Click()
http://www.excel- avanzado.com/2159/g ener ar - ar chi vo- wor d- 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).Ce lls(i, 8).Value If nota <= minimo Then Else curso = ThisWorkbook.Worksheets(1).C ells(i, 1).Value fecha = ThisWorkbook.Worksheets(1).Cells(i, 3).Value dia = ThisWorkbook.Worksheets(1).Ce lls(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:
Cómo crear un
Copiar un
Uso y propiedades
Ejemplo de uso de
archivo en word
contenido de Excel
del Checkbox
IF then else (desde
Función Format
Categories: Integración con office | Tags: word con macros, word con vba | Permalink
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 información colocas acá he estado averiguando y tengo un problema en excel no aparece la opción 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 electrónico * Web Message *
Publicar c omentario
© Todos los derechos reservados por ProgramasPeru.com Ir al Inicio de esta Página
http://www.excel-avanzado.com/2159/generar-archivo-word-desde-vba.html
4/4