Macro de Word para COMBINAR CORRESPONDENCIA y guardar cada hoja como archivo PDF
🔥 Sabías que también podemos programar macros en Microsoft Word, similar a como lo hacemos en Microsoft Excel?
👉 Siguiendo con el tema de Combinar correspondencia, en este video tutorial veremos cómo podemos guardar cada una de las cartas generadas en Word, en archivos PDF individuales.
✔️ No te pierdas este video y ve un paso adelante en el conocimiento!
Ver Video Macro en Word y combinar correspondencia
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
El preámbulo
En este otro video de Combinar correspondencia habíamos visto cómo podemos asignar formatos avanzados a los campos numéricos o de fecha. En ese mismo videos recibí alguna preguntas, entre ellas, cómo podemos guardar cada hoja como archivos individual.
Un seguido del canal, Luis Arturo, me compartió una macro de Word que permite guardar cada hoja generada con Combinar correspondencia, como archivo PDF.
Cómo lo logramos
Primero modificamos la Tabla de Excel para incluir una columna llamada Nombre de archivo.
Estando en Word, con la carta abierta, volvemos a elegir el origen de datos que es el archivo de Excel:
- Pestaña correspondencia.
- Seleccionar destinatarios.
- Usar una lista existente.
- Elegimos el archivo de Excel Tabla nombres – Combinar correspondencia avanzado – EXCELeINFO.xlsx
- Seleccionamos Hoja1$
- Aceptar
Ahora vamos a insertar el campo Nombre de archivo para que luego ese valor sea el que nos sirva de nombre para cada archivo PDF.
- Pestaña Correspondencia.
- Insertar campo combinado.
- Nombre_archivo
Detrás del texto del campo Nombre_archivo vamos a incluirle “_” y después del texto “-“.
Editar en documentos individuales
Una vez que insertamos el campo de Nombre archivo vamos a crear un documento con todos las hojas, para luego guardardas en PDF.
- Pestaña Correspondencia.
- Finalizar y combinar.
- Editar documentos individuales
- Todos.
- Aceptar.
Macro del ejemplo
Cuando tenemos nuestro documentos con todas las hojas, entramos al editor de VBA usando Alt + F11, insertamos un Módulo y pegamos la siguiente macro.
- La macro nos pedirá la cantidad de hojas que tendrá cada PDF: 1.
- La ruta donde se guardarán los archivos PDF.
- El nombre opciones de los archivos.
Sub GenerarPdfSeparados() ' ' Declaracion de Variables Dim paginasDocumento As Integer Dim totalPaginas As Integer Dim pagActual As Integer Dim carpeta As String Dim nombreDocs As String ' Asignacion de valores a variables totalPaginas = ActiveDocument.Range.Information(wdNumberOfPagesInDocument) paginasDocumento = InputBox("¿Cuántas páginas tiene cada documento?", "Número de páginas", 1) carpeta = InputBox("Copie aquí la dirección de la carpeta destino. Por ejemplo: ", "Carpeta destino", "d:\temp\") nombreDocs = InputBox("¿Qué nombre tendran los Documentos?", "Nombre documentos", "misdocs") pagActual = 1 Set miRango = ActiveDocument.Content Do While pagActual <= totalPaginas miRango.Find.Execute FindText:="(_)*(-)", MatchWildcards:=True If (miRango.Find.Found = True) Then miRango.Bold = True nombreDocs = miRango miRango.Delete End If ActiveDocument.ExportAsFixedFormat OutputFileName:= _ carpeta & "\" & CInt(pagActual / paginasDocumento) & nombreDocs & CInt(pagActual / paginasDocumento) & ".pdf", ExportFormat:= _ wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _ wdExportOptimizeForPrint, Range:=wdExportFromTo, From:=pagActual, To:=pagActual + paginasDocumento - 1, Item:= _ wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _ CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _ BitmapMissingFonts:=True, UseISO19005_1:=False ChangeFileOpenDirectory carpeta pagActual = pagActual + paginasDocumento Loop MsgBox ("Generación Terminada.") End Sub
Descarga los archivos de ejemplo
Combinar correspondencia en Word + macro.zip
Si te gustó este tutorial, por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.