
Combinar correspondencia (Mail Merge) utilizando VBA es un proceso avanzado que puede automatizar la creación de documentos personalizados en Word utilizando datos de una hoja de Excel. A continuación, te proporciono un ejemplo paso a paso de cómo hacerlo:
Paso 1: Prepara tus datos en Excel
- Crea un archivo de Excel con los datos que deseas utilizar para la combinación de correspondencia. Asegúrate de que la primera fila contenga los encabezados de las columnas. Por ejemplo, podrías tener columnas como `Nombre`, `Dirección`, `Ciudad`, etc.
- Guarda el archivo de Excel en una ubicación conocida, por ejemplo, `C:DocumentosDatos.xlsx`.
Paso 2: Prepara tu documento de Word
Estimado(a) <<Nombre>>,
Su dirección registrada es <<Dirección>>, <<Ciudad>>.
- Crea un documento de Word que servirá como plantilla para la combinación. Insertas campos de combinación donde desees mostrar datos. Por ejemplo:
- Guarda el documento de Word en una ubicación conocida, por ejemplo, `C:DocumentosPlantilla.docx`.
Paso 3: Escribe el script VBA
Este script se encargará de abrir el documento de Word y realizar la combinación de correspondencia utilizando los datos de Excel.
Abre el Editor de VBA en Excel (Alt + F11) y sigue estos pasos:
Sub CombinarCorrespondencia()
Dim WordApp As Object
Dim WordDoc As Object
Dim RutaExcel As String
Dim RutaWord As String
' Rutas de los archivos
RutaExcel = "C:DocumentosDatos.xlsx"
RutaWord = "C:DocumentosPlantilla.docx"
' Iniciar Word y abrir el documento
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True
Set WordDoc = WordApp.Documents.Open(RutaWord)
' Configurar la combinación de correspondencia
WordDoc.MailMerge.MainDocumentType = 0 ' Tipo: carta
WordDoc.MailMerge.OpenDataSource _
Name:=RutaExcel, _
ReadOnly:=True, _
AddToRecentFiles:=False, _
Revert:=False, _
Format:=0, _
Connection:="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & RutaExcel & ";Extended Properties=""Excel 12.0 Xml;HDR=YES"";", _
SQLStatement:="SELECT * FROM [Hoja1$]"
' Ejecutar la combinación de correspondencia
WordDoc.MailMerge.Execute
' Cerrar documento y Word
WordDoc.Close False
WordApp.Quit
' Liberar variables
Set WordDoc = Nothing
Set WordApp = Nothing
MsgBox "Combinación de correspondencia completada."
End Sub
- Inserta un nuevo módulo: Ve al menú `Insertar` > `Módulo`.
- Escribe el código VBA siguiente en el módulo:
Paso 4: Ejecuta el script VBA
- Ejecuta el script presionando `F5` o desde el menú `Ejecutar` > `Ejecutar Sub/UserForm`.
- El script abrirá Word, conectará los datos de Excel y generará los documentos combinados.
Notas adicionales
- Asegúrate de que las rutas de los archivos de Excel y Word en el script coincidan con las ubicaciones reales.
- El ejemplo asume que los datos están en `Hoja1`. Ajusta el nombre de la hoja en el script si tus datos están en una hoja diferente.
- Puede ser necesario ajustar configuraciones de seguridad para permitir la ejecución de Macros tanto en Excel como en Word.
Conoce nuestros servicios



