将Excel图表发布到Lotus Notes电子邮件中

将Excel图表发布到Lotus Notes电子邮件中,excel,vba,email,charts,lotus-notes,Excel,Vba,Email,Charts,Lotus Notes,好的,刚进入VBA,我就得到了一个doosie。我试图从Excel中的工作表中获取一个图表,并将其放入LotusNotes中。我已经尝试将其附加为richText格式(正如您从注释掉的区域中看到的)和JPEG格式(我最近的尝试。电子邮件发出得很好。正文文本按照预期的方式进行。我只是无法将图表放入电子邮件正文。我真的需要一些帮助。以下是我得到的: Sub SendEmail() ' setting up various objects Dim Maildb As Object

好的,刚进入VBA,我就得到了一个doosie。我试图从Excel中的工作表中获取一个图表,并将其放入LotusNotes中。我已经尝试将其附加为richText格式(正如您从注释掉的区域中看到的)和JPEG格式(我最近的尝试。电子邮件发出得很好。正文文本按照预期的方式进行。我只是无法将图表放入电子邮件正文。我真的需要一些帮助。以下是我得到的:

    Sub SendEmail()
  ' setting up various objects
    Dim Maildb As Object
    Dim UserName As String
    Dim MailDbName As String
    Dim MailDoc As Object
    Dim Session As Object
    Dim recipient As String
    Dim ccRecipient As String
    Dim bccRecipient As String
    Dim subject As String
    Dim bodytext As String
    Dim User As String
   ' Dim attachMe As Object
   ' Dim Attachment1 As String
   ' Dim EmbedObj1 As Object
   ' Dim Chart1 As Object
    Dim Fname As String




    User = Application.UserName

     ' setting up all sending recipients
    recipient = "Someoneelse@somewhere.com"
     'ccRecipient =Someoneelse@Somewhereelse.com
     'bccRecipient = ""
    subject = "Week-To-Date GM%"
    bodytext = "" & vbLf & _
               "" & vbLf & _
               "Here is a breakdown of your total GM% for this week.  The graph gives you the GM% by day, with a display at the bottom" & vbLf & _
               " that gives you your WTD Margin Percentage.  We will continue to develop this report for you to provide you with better information."




     ' creating a notes session
    Set Session = CreateObject("Notes.NotesSession")
    UserName = Session.UserName
    MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
    Set Maildb = Session.GETDATABASE("", MailDbName)

    If Maildb.IsOpen <> True Then
        On Error Resume Next
        Maildb.OPENMAIL
    End If

    Set MailDoc = Maildb.CreateDocument
    MailDoc.Form = "Memo"

    Fname = Environ$("temp") & "\GM%.jpeg"

    Sheets("Chart").Shapes("Chart 2").Chart.ChartArea.Export Filename:=Fname, FilterName:="JPEG"

     ' loading the lotus notes e-mail with the inputed data
    With MailDoc
        .SendTo = recipient
         '.copyto = ccRecipient
         '.blindcopyto = bccRecipient
        .subject = subject
        .Attachment.Add Fname
        .Body = bodytext
    End With


     ' saving message (Change to True if you want to save it)
    MailDoc.SaveMessageOnSend = False

'        Attachment1 = Worksheets("Chart").Shapes("Chart 2").ChartArea
'    If Attachment1 <> "" Then
'        Set attachMe = MailDoc.CREATERICHTEXTITEM("Attachment1")
'        Set EmbedObj1 = attachMe.EmbedObject(1454, "", Attachment1, "Attachment")
'        MailDoc.CREATERICHTEXTITEM ("Attachment")
'    End If

     ' send e-mail
    MailDoc.PostedDate = Now()
     ' if error in attachment or name of recipients


    MailDoc.Send 0, recipient

    Set Maildb = Nothing
    Set MailDoc = Nothing
    Set attachMe = Nothing
    Set Session = Nothing
    Set EmbedObj1 = Nothing

     'Unload Me
    Exit Sub
End Sub
Sub sendmail()
"设置各种对象,
Dim Maildb作为对象
将用户名设置为字符串
Dim MailDbName作为字符串
Dim MailDoc作为对象
将会话设置为对象
将收件人设置为字符串
将收件人设置为字符串
Dim b客户作为字符串
模糊主题为字符串
将正文设置为字符串
将用户设置为字符串
'将附件作为对象
'作为字符串的Dim Attachment1
'将OBJ1作为对象
'Dim Chart1作为对象
作为字符串的Dim Fname
User=Application.UserName
'设置所有发送收件人
收件人=”Someoneelse@somewhere.com"
“收信人=Someoneelse@Somewhereelse.com
'bccrecient=“”
主题=“本周至今GM%”
bodytext=”“&vbLf&_
“”&vbLf&_
“这是本周总GM%的明细。图表显示了每天的GM%,底部显示”&vbLf&_
“这将为您提供WTD利润率。我们将继续为您编制此报告,为您提供更好的信息。”
'创建notes会话
Set Session=CreateObject(“Notes.NotesSession”)
UserName=Session.UserName
MailDbName=Left$(UserName,1)和Right$(UserName,(Len(UserName)-InStr(1,UserName,“”))和“.nsf”
设置Maildb=Session.GETDATABASE(“,MailDbName”)
如果Maildb.IsOpen为True,则
出错时继续下一步
Maildb.OPENMAIL
如果结束
设置MailDoc=Maildb.CreateDocument
MailDoc.Form=“备忘录”
Fname=Environ$(“temp”)和“\GM%.jpeg”
工作表(“图表”).Shapes(“图表2”).Chart.ChartArea.Export文件名:=Fname,过滤器名称:=“JPEG”
'加载带有输入数据的lotus notes电子邮件
用MailDoc
.SendTo=收件人
'.copyto=ccRecipient
'.blindcopyto=b客户
.主语
.Attachment.Add Fname
.Body=bodytext
以
'保存消息(如果要保存,请更改为True)
MailDoc.SaveMessageOnSend=False
'Attachment1=工作表(“图表”).Shapes(“图表2”).ChartArea
'如果附件1'',则
'Set attachMe=MailDoc.CREATERICHTEXTITEM(“Attachment1”)
'Set EmbedObj1=attachMe.EmbedObject(1454,“,Attachment1,Attachment”)
'MailDoc.CREATERICHTEXTITEM(“附件”)
"完"
'发送电子邮件
MailDoc.PostedDate=Now()
'如果附件或收件人名称中有错误
MailDoc.Send 0,收件人
设置Maildb=Nothing
设置MailDoc=Nothing
Set attachMe=Nothing
设置会话=无
设置embeddeOBJ1=无
“卸下我
出口接头
端接头

这应该在MailDoc.Send之前起作用

Dim rtitem As Object
Dim object As Object

Set rtitem = MailDoc.CreateRichTextItem("Attachment1")
Set object = rtitem.EmbedObject ( 1454, "", Fname)

我粘贴了这个,它返回时出现了一个用户定义类型未定义错误。我假设我需要在某个地方取消注释一行左右…有什么建议吗?我想NotesRichTextItem和NotesEmbeddedObject在VBA中没有任何意义。尝试改用Object。太好了!这将图表作为jpeg附件发送!谢谢!