Pegando múltiples gráficos de Excel uno por fila con VBA en Outlook.
Estoy intentando copiar varios gráficos de Excel en Outlook, cada uno como un mapa de bits, y cada uno en su propia linea y del mismo tamaño. El código a continuación recorre y copia cada gráfico y los pega exitosamente en Outlook como mapas de bits. Sin embargo, todos se colocan uno al lado del otro, de 1 a 3 en una fila dependiendo del tamaño. He intentado agregar vbNewLine, vbCrLF y <br>
, así como otros, pero todos eliminan todos los gráficos. ¿Alguna idea de cómo poner cada gráfico en su propia línea para que estén apilados verticalmente en el correo electrónico y del mismo tamaño? Aquí está el código. Gracias de antemano:
Public Sub EmailCharts()
Dim Sht As Excel.Worksheet
Set Sht = ThisWorkbook.ActiveSheet
Dim OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Dim outMail As Object
Set outMail = OutApp.CreateItem(0)
Dim vInspector As Object
Set vInspector = outMail.GetInspector
Dim wEditor As Object
Set wEditor = vInspector.WordEditor
Dim objChart As Excel.ChartObject
With outMail
.Display
.to = "abc@xyz.com"
.BCC = "abc@xyz.com"
.Subject = "Asunto"
For Each objChart In Sht.ChartObjects
objChart.CopyPicture (xlBitmap)
.HTMLBody = wEditor.Range(0, 0).Paste
Next
End With
Set outMail = Nothing
Set OutApp = Nothing
End Sub
davy.ai
Para obtener cada gráfico en su propia línea para que se apilen verticalmente en el correo electrónico y tengan el mismo tamaño, intenta reemplazar la línea:
.HTMLBody = wEditor.Range(0, 0).Paste
con:
.HTMLBody = .HTMLBody & vbCrLf & wEditor.Range(0, 0).PasteAndFormat(wdChartPicture) & vbCrLf
Esto agregará una nueva línea antes de cada gráfico y asegurará que estén apilados verticalmente.