Tamaño de letra en email con macro de excel
Hola, soy bastante novato en esto de las macros de excel y tengo un problemilla al enviar emails con las macros.
En general la macro funciona bien y los emails se envían bien. El cuerpo del mensaje está en HTML con la etiqueta HTMLBody. Al principio lo tenía puesto todo como cadena de texto con HTML y no daba problemas, pero era un poco lioso conservar todos los espacios bien, ya que la parte central tiene forma de tabla. Esto es lo que he cambiado, he introducido una tabla con HTML. El problema es que me respeta el tamaño de la letra de las primeras líneas del email( un párrafo), pero el tamaño de la letra de toda la tabla no lo respeta y sale más grande.
Si visualizo el email con .display se ve bien, todo el email con la letra del mismo tamaño(incluida la tabla), pero al darle a enviar, y visualizar el email después de ser enviado el tamaño de la letra de la tabla es más grande.
Copio el código de la parte del envío del correo por si pudieras ver algo incorrecto:
Sub enviocorreo0()
Set OutMail = OutApp.CreateItem(0)
cuerpo = ""
On Error Resume Next
OutMail.Subject = "Reclamación de Originales Pendientes de Recibir en DCF -Mutua Madrileña-"
OutMail.To = " ; ; " '= correo
OutMail.CC = copia & " ; "
cadena1 = "<font size=2 face=Arial><br>" & hora & "<br><br>
<p>Primer párrafo, que sale con el tamaño de letra bien.<br><br><br></p>
</font>"
'aquí empieza la tabla, y ya no se respeta el tamaño de la letra
cadena2 = "<font size=2 face=Arial>
<table width=100% cellspacing = 7>
<font size=2 face=Arial>
<tr>
<th width=70>SUCURSAL</th><th width=35>AÑO</th><th width=80>PROPUESTA</th><th width=200 align = left>NOMBRE Y APELLIDOS</th><th width=70>NIF</th><th align = left>DETALLE INCIDENCIA</th>
</tr>
"
For b = a To 20 'esta parte de la tabla depende del tipo de correo, se rellena con los valores de esas celdas, y es variable el nº de filas
cuerpo = cuerpo + "
<tr>
<td align= center>" & Range("A" & b).Value & "</td>
<td align= center>" & Range("B" & b).Value & "</td>
<td align= center>" & Range("C" & b).Value & "</td>
<td align = left>" & Range("D" & b).Value & "</td>
<td align= center>" & Range("E" & b).Value & "</td>
<td align= left>" & Range("F" & b).Value & "</td>
</tr>
"
Next b
fin = "</font>
</table>
</font>"
OutMail.htmlbody = cadena1 + cadena2 + cuerpo + fin
OutMail.Display
'OutMail.Send
a = a + polizas - 1
On Error GoTo 0
End Sub
¿Hay algo que pueda hacer para controlar ese tamaño de letra cuando envío los emails?
Muchas gracias de antemano por tu ayuda.
En general la macro funciona bien y los emails se envían bien. El cuerpo del mensaje está en HTML con la etiqueta HTMLBody. Al principio lo tenía puesto todo como cadena de texto con HTML y no daba problemas, pero era un poco lioso conservar todos los espacios bien, ya que la parte central tiene forma de tabla. Esto es lo que he cambiado, he introducido una tabla con HTML. El problema es que me respeta el tamaño de la letra de las primeras líneas del email( un párrafo), pero el tamaño de la letra de toda la tabla no lo respeta y sale más grande.
Si visualizo el email con .display se ve bien, todo el email con la letra del mismo tamaño(incluida la tabla), pero al darle a enviar, y visualizar el email después de ser enviado el tamaño de la letra de la tabla es más grande.
Copio el código de la parte del envío del correo por si pudieras ver algo incorrecto:
Sub enviocorreo0()
Set OutMail = OutApp.CreateItem(0)
cuerpo = ""
On Error Resume Next
OutMail.Subject = "Reclamación de Originales Pendientes de Recibir en DCF -Mutua Madrileña-"
OutMail.To = " ; ; " '= correo
OutMail.CC = copia & " ; "
cadena1 = "<font size=2 face=Arial><br>" & hora & "<br><br>
<p>Primer párrafo, que sale con el tamaño de letra bien.<br><br><br></p>
</font>"
'aquí empieza la tabla, y ya no se respeta el tamaño de la letra
cadena2 = "<font size=2 face=Arial>
<table width=100% cellspacing = 7>
<font size=2 face=Arial>
<tr>
<th width=70>SUCURSAL</th><th width=35>AÑO</th><th width=80>PROPUESTA</th><th width=200 align = left>NOMBRE Y APELLIDOS</th><th width=70>NIF</th><th align = left>DETALLE INCIDENCIA</th>
</tr>
"
For b = a To 20 'esta parte de la tabla depende del tipo de correo, se rellena con los valores de esas celdas, y es variable el nº de filas
cuerpo = cuerpo + "
<tr>
<td align= center>" & Range("A" & b).Value & "</td>
<td align= center>" & Range("B" & b).Value & "</td>
<td align= center>" & Range("C" & b).Value & "</td>
<td align = left>" & Range("D" & b).Value & "</td>
<td align= center>" & Range("E" & b).Value & "</td>
<td align= left>" & Range("F" & b).Value & "</td>
</tr>
"
Next b
fin = "</font>
</table>
</font>"
OutMail.htmlbody = cadena1 + cadena2 + cuerpo + fin
OutMail.Display
'OutMail.Send
a = a + polizas - 1
On Error GoTo 0
End Sub
¿Hay algo que pueda hacer para controlar ese tamaño de letra cuando envío los emails?
Muchas gracias de antemano por tu ayuda.
1 Respuesta
Respuesta de Raul Hernandez
1