我正在将图像从 Excel 复制到 Outlook VBA 中。唯一的问题是图像太小并且似乎没有任何效果

问题描述 投票:0回答:1
  Dim OutApp2 As Object
 Dim OutMail2 As Object
 Dim table2 As Range
 Dim ws2 As Worksheet
 Dim tableoosinst As Range
 Dim pic2 As Picture
 Dim WordDoc2
 
 
 Set OutApp2 = CreateObject("Outlook.Application")
 Set OutMail2 = OutApp2.CreateItem(0)
 
 Set ws2 = ThisWorkbook.Sheets("ISK VS OSA Chart")
 Set table2 = ws2.Range("E1:Ab34")
 ws2.Activate
 table2.Copy
 Set pic2 = ws2.Pictures.Paste
 pic2.Cut
 
 
 'create email
 On Error Resume Next


    Dim name As String
    name = slItem2.name
    

    With OutMail2
    .Subject = name & " Score Card"
    .Display
       
       
    Set WordDoc2 = OutMail2.GetInspector.WordEditor
    

        With WordDoc2.Range
        
        .pasteandFormat wdChartPicture
        .ShapeRange.LockAspectRatio = msoFalse
        .Width 100
        .Height = 100
        .InsertParagraphAfter
        
        
        
        End With
        

        
        .HTMLBody = "Hi Team, <p> Please see the table below" & .HTMLBody
         .Save
        .Close (olSave)
        
        
        End With
        On Error GoTo 0
        
        Set OutApp = Nothing
        Set OutMail = Nothing

我想将 Excel 中的一系列内容复制到 Outlook 电子邮件中,但图像太小。 .width 和 Height 根本不起作用或根本改变图像。我不想手动调整生成的每封电子邮件。

我几乎尝试了所有方法,所以我不确定为什么纵横比仍然锁定在 Outlook 文件上。如果有人知道更简单的方法请告诉我。如果要复制的图像太大,我想到的另一个选择是在 Outlook 电子邮件中复制多个单独的图像,但我也无法弄清楚。

excel vba outlook html-email office-automation
1个回答
0
投票

首先,我建议合并您的消息正文内容并保持结果 HTML 标记格式正确:

.HTMLBody = "Hi Team, <p> Please see the table below" & .HTMLBody

这意味着您需要找到

<body>
并在其后面插入文本,但不要将字符串连接在一起。如果您想在邮件正文中获得稳定的结果,您应该为
HTMLBody
属性设置格式良好的 HTML 标记,并且切勿依赖 Outlook 为您处理这部分。

其次,您需要检查原始图像的尺寸 - 是否与粘贴的尺寸相对应。尝试使用不同的参数,例如,您可以尝试传递

wdFormatOriginalFormatting
值,或者仅使用 Paste 方法。

第三,作为替代实现,您可以将图像保存到磁盘,然后将其附加到 Outlook 中的邮件(请参阅

Attachments.Add
)并在邮件正文中使用它。例如:

attachment = MailItem.Attachments.Add("c:\temp\MyPicture.jpg")
attachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", "MyId1")
MailItem.HTMLBody = "<html><body>Test image <img src=""cid:MyId1""></body></html>"
© www.soinside.com 2019 - 2024. All rights reserved.