Comunicarse a distancia, y en especial en estos tiempos, suele tener sus desventajas por cada cosa buena que presenta. Por ejemplo, tener que enviar un correo electrónico a muchas personas y tener que agregar tablas para presentar cierta información. Ahí la cosa se complica un poco, pero para estos casos podemos hacer uso de macros para poder hacer los correos bastante más presentables y cómodos de leer.

Aquí abajo te muestro el código de cómo puedes conseguir este efecto, pero primero recuerda que antes de correr un macro que hace uso de Outlook debes activar la librería en VBA.
El código
Para que esto funcione, introduce este código en un nuevo módulo:
Sub Mail_small_Text_And_JPG_Range_Outlook()Dim OutApp As ObjectDim outMail As ObjectDim strbody As StringDim MakeJPG As StringDim PictureRange As RangeDim outPA As Outlook.PropertyAccessorDim colAttach As Outlook.AttachmentsDim outAttach As Outlook.AttachmentWith Application.EnableEvents = False.ScreenUpdating = FalseEnd With'Para evitar temas de seguridad, activamos el tag de propagacion de microsoft Const PR_ATTACH_CONTENT_ID = "http://schemas.microsoft.com/mapi/proptag/0x3712001F"Set OutApp = CreateObject("Outlook.Application")Set OutMail = OutApp.CreateItem(0)strbody = "Hola a todos" & "<br><br>" & _"Adjunto pueden encontrar la informacion de las tablas" & "<br>" & _"Quedo al pendiente para cualquier aclaracion." & "<br><br>" & _"Saludos! S<br>"'Aqui creas una imagen JPG desde un rango de ExcelWith ActiveWorkbookOn Error Resume Next.Worksheets(1).ActivateSet PictureRange = .Worksheets(1).Range("A1:H20")PictureRange.CopyPictureWith .Worksheets(1).ChartObjects.Add(PictureRange.Left, PictureRange.Top, PictureRange.Width, PictureRange.Height).Activate.Chart.Paste.Chart.Export Environ$("temp") & Application.PathSeparator & "NamePicture.jpg", "JPG"End With.Worksheets(1).ChartObjects(.Worksheets(1).ChartObjects.Count).DeleteEnd WithMakeJPG = Environ$("temp") & Application.PathSeparator & "NamePicture.jpg"Set PictureRange = Nothing'Paso para crear la imagen sin adjuntar el archivo, manipulamos las propiedades del correo Set colAttach = outMail.Attachments Set outAttach = colAttach.Add(MakeJPG) Set outPA = outAttach.PropertyAccessor outPA.SetProperty PR_ATTACH_CONTENT_ID, "NamePicture.jpg" '<------- aqui va el nombre de tu imagenOn Error Resume NextWith OutMail.To = "something@somewhere.mx".CC = "".BCC = "".Subject = "Faltas por empleado".HTMLBody = "<Body>" & strbody & "<img src=""cid:NamePicture.jpg"" width=750 height=700></Body>".DisplayEnd WithOn Error GoTo 0With Application.EnableEvents = True.ScreenUpdating = TrueEnd WithSet OutMail = NothingSet OutApp = NothingEnd Sub
Ahora bien, estas son las cosas que tendrás que necesitas saber para poder ajustar este macro a tus preferencias:
Crear la imágen por medio de un rango, el cual se consigue con estas líneas:
Set PictureRange = .Worksheets(1).Range("A1:H50") PictureRange.CopyPictureWith .Worksheets(1).ChartObjects.Add(PictureRange.Left, PictureRange.Top, PictureRange.Width, PictureRange.Height).Activate.Chart.Paste.Chart.Export Environ$("temp") & Application.PathSeparator & "NamePicture.jpg", "JPG"
Cambiando los valores que están en el rango y la hoja para que se ajusten a lo que deseas enviar, puedes tomar cualquier tabla en tu libro de trabajo y convertirtla en una imágen temporal que será borrada en cuanto apagues la computadora.
El cuerpo HTML
.HTMLBody = "<Body>" & strbody & "<img src=""cid:NamePicture.jpg"" width=750 height=700></Body>"Es importante usar siempre el cuerpo HTML en este macro, de otro modo no podremos insertar imágenes. Si te interesa saber cómo se puede modificar y qué parámetros se pueden usar, en este link encontrarás información.
El código para tomar la imagen
<img src=""cid:NamePicture.jpg"" width=750 height=700></html>"Esta es la línea que se encarga de insertar la imagen en el correo, por lo cual puedes ponerla en cualquier parte del Body para que salga al inicio, al final o en medio dependiendo de dónde la prefieras. Por ejemplo, si quisiera que la imagen estuviera al final, quedaría así:
"<html><p>" & "Hola a todos" & "<br><br>" & _"Adjunto puedes encontrar una table con los datos presentados." & "<br>" & _"Cualquier duda quedo a la orden." & "<br><br>" & _"S.<br>" "</p><img src=""cid:NamePicture.jpg"" width=750 height=700></html>"
Y si quisiera que quedara en medio, tendría que quedar así:
"<Body>" & "Hola a todos" & "<br><br>" & _"Adjunto puedes encontrar una table con los datos presentados." & "<br>" & _<img src=""cid:NamePicture.jpg"" width=750 height=700>" & "<br>" _& "Cualquier duda quedo a la orden." & "<br><br>" & _"S.<br><Body>”
Muestra mejor presentación en tus correos electrónicos con tablas de Excel y automatiza tus actividades con macros para simplificar tus tareas.
Cualquier duda nos leemos abajo.
