如何在vba中发送形状为图像的电子邮件?

时间:2013-08-04 22:35:52

标签: excel excel-vba vba

我有一个* .xls文件,其中包含一个插件生成的形状,形成一个图表。 如何使用VBA将这些形状作为图像公司发送到电子邮件中的某些文本? 我知道如何在VBA中获取形状,但不知道如何将它们转换为单个图像。

仅供参考:我无法在工作计算机上安装任何软件或编程环境。 MS Office就是我所拥有的。

1 个答案:

答案 0 :(得分:1)

Excel Vba在图表对象上有一个CopyPicture方法,您可以使用该方法将图表复制到剪贴板,然后将图像粘贴到新电子邮件中。当我有机会时,我会发布一个快速演示,但希望这会指出你正确的方向。另请查看此question,因为它也可能有所帮助。

修改
发现您还可以将图表导出为图像 试试这个,我测试了它,它确实有效。

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