Está en la página 1de 6

La utilización de Word y Outlook para combinar correspondencia es

excelente, pero limitada cuando nos enfrentamos a un lista de, por ejemplo, 100 emails
personalizados con 1 archivo diferente para cada destinatario… Por defecto, la combinación no se
puede hacer, pero si trabajamos un poco, podremos preparar una macro que haga el trabajo por
nosotros.

Necesitaremos un par de ingredientes:

 MS Word 2007, 2010, 2013 o superiores

 MS Outlook 2007, 2010, 2013 o superiores

Tiene varias limitaciones de formato, pero es un mal menor con el que tendremos que vivir… El
tiempo que nos ahorraremos suplirá el inconveniente de no poder añadir una imagen de cabecera
en el email, no?

Continuamos tras el salto, para no saturar la ventana principal…

PROGRAMAR PARA COMBINAR CORRESPONDENCIA

En primer lugar, vamos a tener que localizar la pestaña programador en Word (entra en este
enlace si no la encuentras). En Opciones de Word…
Aceptamos, cerramos y ya vemos la ficha programador en la cinta de opciones… nos centramos en
el primer bloque de opciones.

Le damos al botón de Macros, escogemos un nombre como “combina”,  y le damos a Crear.


Veremos ahora una ventana como esta…

MACRO PARA COMBINAR CORRESPONDENCIA

Vamos a vaciarla y pegarle este código que tenemos aquí abajo (os marco en rojo la dirección de
email, que deberéis cambiar por la vuestra para evitar posibles errores):

Sub combina()
Dim Source As Document, Maillist As Document, TempDoc As Document
Dim Datarange As Range
Dim i As Long, j As Long
Set objEmail = CreateObject("CDO.Message")
objEmail.from = "info@educadictos.com"
Dim bStarted As Boolean
Set oOutlookApp = CreateObject("Outlook.Application")
' Dim oItem As Outlook.MailItem
Dim mysubject As String, message As String, title As String
Set Source = ActiveDocument
' Check if Outlook is running. If it is not, start Outlook
On Error Resume Next
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
Set oOutlookApp = CreateObject("Outlook.Application")
bStarted = True
End If
' Open the catalog mailmerge document
With Dialogs(wdDialogFileOpen)
.Show
End With
Set Maillist = ActiveDocument
' Show an input box asking the user for the subject to be inserted into the email messages
message = "Escribe el asunto que llevarán todos los emails" ' Set prompt.
title = " Email Subject Input" ' Set title.
' Display message, title
mysubject = InputBox(message, title)
' Iterate through the Sections of the Source document and the rows of the catalog mailmerge
document,
' extracting the information to be included in each email.
For j = 1 To Source.Sections.Count - 1
Set oItem = oOutlookApp.CreateItem(olMailItem)
With oItem
.Subject = mysubject
.Body = Source.Sections(j).Range.Text
Set Datarange = Maillist.Tables(1).Cell(j, 1).Range
Datarange.End = Datarange.End - 1
.To = Datarange
For i = 2 To Maillist.Tables(1).Columns.Count
Set Datarange = Maillist.Tables(1).Cell(j, i).Range
Datarange.End = Datarange.End - 1
.Attachments.Add Trim(Datarange.Text), olByValue, 1
Next i
.Send
End With
Set oItem = Nothing
Next j
Maillist.Close wdDoNotSaveChanges
' Close Outlook if it was started by this macro.
If bStarted Then
oOutlookApp.Quit
End If
MsgBox Source.Sections.Count - 1 & " messages have been sent."
'Clean up
Set oOutlookApp = Nothing
End Sub

Una vez pegado… guardamos y cerramos.

Ahora para combinar correspondencia necesitaremos otros 2 archivos Word…


 Documento 1: Cuerpo del email que queremos enviar, con el texto, nombres, etc… En
resumen, el email que vamos a combinar. Supondré que ya sabes hacer combinación, así
que no te diré nada más. Tú simplemente ten el email preparado para enviar sin adjuntos.

 Documento 2: Otro word con una tabla de 2 columnas, una con el email del destinatario
(que ha de coincidir con uno de los destinatarios del documento 1, lógicamente), y otra
con la ruta en tu ordenador del documento que ha de recibir. Y una fila por cada
destinatario… algo así:

[alert]La tabla no lleva encabezados.[/alert]

Este Documento 2 lo guardaremos con un nombre reconocible, como “Tabla de adjuntos”, o


similar. Y ahora viene lo bueno…

1. En el Documento 1, ya escrito y con los campos de combinación cubiertos, le damos a


“Finalizar y combinar” y “Editar documentos individuales”.

2. En el documento donde vemos el resultado de los emails, nos vamos a la pestaña


Programador, le damos al botón de Macros, seleccionamos “Combina” y le damos a
ejecutar.

3. La macro nos pedirá que le indiquemos dónde está el Documento 2, así que lo llevamos
hasta el nuestro y le damos a aceptar. (Este documento tiene que estar cerrado, o la
macro dará error).

4. Ahora nos pide que añadamos el asunto que llevarán los emails. Aceptamos y listo… Si no
tenemos Outlook abierto, lo abrirá, y si ya lo tenemos abierto, irá enviando los emails con
los adjuntos rápidamente hasta darnos el resultado de los envíos. Una vez termine, si
Outlook estaba abierto, lo dejará abierto, y si estaba cerrado, lo cerrará.
Podéis hacer las pruebas para combinar correspondencia vosotros mismos, veréis que es una
macro impresionante

Si queréis añadir más de 1 adjunto, en lugar de tener 2 columnas: destinatario/ruta de archivo,


tenemos que tener 3: destinatario/ruta de archivo1/ruta de archivo2… Aunque esta opción no la
he probado, prefiero añadirle un archivo único, que puede ser un ZIP con los documentos que
vaya a recibir cada destinatario. Cuantas menos cosas puedan dar problema, mejor.

También podría gustarte