我使用Excel VBA创建了一封从excel中提取信息的电子邮件,然后直接从excel发送电子邮件。但是,我还希望能够在电子邮件正文中包含图表对象。我遇到过一些示例,它们将图表转换为图像,然后使用HTML将图像嵌入到电子邮件正文中。我想尝试将其保留为excel图表对象,而不是图像。
我还发现了一些使用“ActiveChart.ChartArea.Copy”并使用sendkeys或其他代码行粘贴到图表中的代码示例,但它似乎也没有用。唯一被粘贴的是来自VBA模块的代码。
如果有人能告诉我我可能缺少什么,我将不胜感激。下面的代码显示了我尝试过的内容。我已根据我阅读或尝试过的不同内容尝试了一些项目,但注释掉了一些似乎不起作用的内容。
Private Sub CommandButton2_Click()
Dim mainWB As Workbook
Dim SendID
Dim CCID
Dim Subject
Dim Body
On Error GoTo Handler
Set myOutlook = GetObject(, "Outlook.Application")
Set myMessage = myOutlook.CreateItem(olMailItem)
Set mainWB = ActiveWorkbook
SendID = mainWB.Sheets("Mail").Range("B1").Value
CCID = mainWB.Sheets("Mail").Range("B2").Value
Subject = mainWB.Sheets("Mail").Range("B3").Value
Body = mainWB.Sheets("Mail").Range("B4").Value
ActiveChart.ChartArea.Copy
With myMessage
.To = SendID
If CCID <> "" Then
.CC = CCID
End If
.Subject = Subject
'ActiveChart.ChartArea.Copy
.Body = Body
.Display
' Set wEditor = o.activeInspector.WordEditor
' wEditor.Application.Selection.Paste
End With
SendKeys "^{END}"
SendKeys "^({v})", True
Set myOutlook = Nothing
Set myMessage = Nothing
Exit Sub
Handler:
Set myOutlook = CreateObject("Outlook.Application")
Err.Clear
Resume Next
End Sub
答案 0 :(得分:0)
电子邮件(在撰写本文时)仅支持图像(或动画gif)。您的问题是为什么我们建立了 Image-Charts ,以便您可以轻松地将图表嵌入到电子邮件中。
只需生成一个URL(请参阅our documentation),然后将其嵌入到您的电子邮件(<img src="https://image-charts.com/chart?[...]"
)中就可以了!
奖金,它还支持gifs,并且永远永久免费:)
(注意:它是已弃用的Google Image Charts的替代品,我是Image-Charts的创建者)