Excel Visual Basic-屏幕截图,然后插入电子邮件

Excel Visual Basic-屏幕截图,然后插入电子邮件,excel,vba,outlook,screenshot,Excel,Vba,Outlook,Screenshot,我不熟悉使用Visual Basic。我正在MS Excel中使用Visual Basic。我正在努力解决必须将屏幕快照粘贴到电子邮件中的问题。我有以下资料,你能告诉我需要输入什么吗 谢谢 Sub AddToNaughtyList() ' ' AddToNaughtyList Macro ' Range("Y3:Z3").Select Application.CutCopyMode = False Selection.Insert Shift:=

我不熟悉使用Visual Basic。我正在MS Excel中使用Visual Basic。我正在努力解决必须将屏幕快照粘贴到电子邮件中的问题。我有以下资料,你能告诉我需要输入什么吗

谢谢

    Sub AddToNaughtyList()
 '
    ' AddToNaughtyList Macro
    '
    Range("Y3:Z3").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("U2:V2").Select
    Selection.Copy
    Range("Y3:Z3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("E2").Select

    Dim aOutlook As Object
    Dim aEmail As Object
    Dim StudentName As String
    Dim SendAddress As String

 ' copy picture

    Range("C6:S39").Select
    Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap

'setup email

    Set aOutlook = CreateObject("Outlook.Application")
    Set aEmail = aOutlook.CreateItem(0)
    StudentName = ActiveCell.Value
    SendAddress = Range("D5")


'Cells(1, "A").Value

'Set Address

    aEmail.To = SendAddress

'Set Subject

    aEmail.Subject = "Weekly Progress Report for " & StudentName

'Set Body for mail

    aEmail.HTMLBody = "<font face=calibri><html><body>Nat's *Student needs to attend Friday Detention* text goes here.</font><br /><br />" _

'paste into email???????????

aEmail.Display
Sub AddToNaughtyList()
'
'AddToNaughtyList宏
'
范围(“Y3:Z3”)。选择
Application.CutCopyMode=False
选择。插入Shift:=xlDown,CopyOrigin:=xlFormatFromLeftOrAbove
范围(“U2:V2”)。选择
选择,复制
范围(“Y3:Z3”)。选择
Selection.Paste特殊粘贴:=xlPasteValues,操作:=xlNone,SkipBlank_
:=假,转置:=假
范围(“E2”)。选择
暗淡的A外观为对象
将电子邮件作为对象
将StudentName设置为字符串
将发送地址设置为字符串
“复制图片
范围(“C6:S39”)。选择
Selection.CopyPicture外观:=xlScreen,格式:=xlBitmap
'设置电子邮件
设置aOutlook=CreateObject(“Outlook.Application”)
设置aEmail=aOutlook.CreateItem(0)
StudentName=ActiveCell.Value
发送地址=范围(“D5”)
'单元格(1,“A”)。数值
'设置地址
aEmail.To=发送地址
“设定主题
aEmail.Subject=“每周进度报告”&StudentName
'设置邮件正文
aEmail.HTMLBody=“Nat的*学生需要参加星期五的拘留*文本在这里。

”_ '粘贴到电子邮件中??????????? 电子邮件显示
我看到了两种可能的解决方案:

  • Outlook使用Word呈现/编辑邮件正文。因此,可以使用Word对象模型从剪贴板粘贴图像。Inspector类的WordEditor属性从表示消息体的Word对象模型返回文档类的实例。选择类的或方法插入剪贴板的内容。有关更多信息,请参阅
  • 将屏幕截图另存为磁盘上的文件,然后将其作为附件附加到邮件项目。Attachments类的方法在Attachments集合中创建新附件。然后您可以在消息正文中提到它。注意,您需要将cid属性指定给附加的图像,以便在正文中添加引用
  • 例如:

      Attachment attachment = newMail.Attachments.Add(@"E:\Pictures\image001.jpg", OlAttachmentType.olEmbeddeditem, null, "Some image display name");
    
      string imageCid = "image001.jpg@123";
    
      attachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E", imageCid);
    
     newMail.HTMLBody = String.Format("<body><img src=\"cid:{0}\"></body>", imageCid);
    
    Attachment Attachment=newMail.Attachments.Add(@“E:\Pictures\image001.jpg”,OlAttachmentType.olEmbeddeditem,null,“一些图像显示名称”);
    字符串imageCid=“image001。jpg@123";
    附件.PropertyAccessor.SetProperty(“http://schemas.microsoft.com/mapi/proptag/0x3712001E“,imageCid);
    newMail.HTMLBody=String.Format(“,imageCid”);
    
    我看到了两种可能的解决方案:

  • Outlook使用Word呈现/编辑邮件正文。因此,可以使用Word对象模型从剪贴板粘贴图像。Inspector类的WordEditor属性从表示消息体的Word对象模型返回文档类的实例。选择类的或方法插入剪贴板的内容。有关更多信息,请参阅
  • 将屏幕截图另存为磁盘上的文件,然后将其作为附件附加到邮件项目。Attachments类的方法在Attachments集合中创建新附件。然后您可以在消息正文中提到它。注意,您需要将cid属性指定给附加的图像,以便在正文中添加引用
  • 例如:

      Attachment attachment = newMail.Attachments.Add(@"E:\Pictures\image001.jpg", OlAttachmentType.olEmbeddeditem, null, "Some image display name");
    
      string imageCid = "image001.jpg@123";
    
      attachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E", imageCid);
    
     newMail.HTMLBody = String.Format("<body><img src=\"cid:{0}\"></body>", imageCid);
    
    Attachment Attachment=newMail.Attachments.Add(@“E:\Pictures\image001.jpg”,OlAttachmentType.olEmbeddeditem,null,“一些图像显示名称”);
    字符串imageCid=“image001。jpg@123";
    附件.PropertyAccessor.SetProperty(“http://schemas.microsoft.com/mapi/proptag/0x3712001E“,imageCid);
    newMail.HTMLBody=String.Format(“,imageCid”);
    
    我不希望将屏幕截图作为附件,但希望将其包含在电子邮件中。您可以添加隐藏的附件。它对用户不可见。但是图像将显示在身体中。请参阅。我不希望将屏幕截图作为附件包含,但希望将其包含在电子邮件中。您可以添加隐藏的附件。它对用户不可见。但是图像将显示在身体中。请参阅。我不希望将屏幕截图作为附件包含,但希望将其包含在电子邮件中。您可以添加隐藏的附件。它对用户不可见。但是图像将显示在身体中。看见