我得到了一个 *.xls 文件,其中包含一个插件生成的形状,它形成了一个图表。如何使用 VBA 在电子邮件中将这些形状作为图像和一些文本发送?我知道如何在 VBA 中获取形状,但不知道如何将它们转换为单个图像。
仅供参考:我无法在我的工作计算机上安装任何软件或编程环境。MS Office 只是我所拥有的。
Excel Vba 在图表对象上有一个CopyPicture方法,您可以使用该方法将图表复制到剪贴板,然后将图像粘贴到新电子邮件中。有机会我会发布一个快速演示,但希望这会为您指明正确的方向。还要看看这个问题,因为它也可能有帮助。
编辑
发现您还可以将图表导出为图像。
试试这个,我已经测试过了,它确实有效。
Sub SendMail()
Dim OutApp As Object
Dim OutMail As Object
Dim myChart As ChartObject
Set myChart = Me.ChartObjects(1)
Dim myFilename As String
myFilename = "c:\temp\test.png"
On Error Resume Next
Kill myFilename
On Error GoTo 0
myChart.chart.Export myFilename, "PNG"
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
' Change the mail address and subject in the macro before you run it.
With OutMail
.To = "test@test.com"
.CC = ""
.BCC = ""
.Subject = "This is the Subject line"
.Body = "Hello World!"
.Attachments.Add myFilename
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub