Мне удалось создать outlook mail с изображением заданного диапазона.Однако попытка вставить 2 изображения с разными диапазонами приводит к тому, что одно из изображений отображается правильно, а другое приводит к «Невозможно отобразить изображение»
Это то, что у меня пока есть.
Sub test()
Dim OApp As Object
Dim OMail As Object
Dim signature As String
Set OApp = CreateObject("Outlook.Application")
Set OMail = OApp.CreateItem(0)
'------------------------------------------------------------------
'MAIL BODY
'------------------------------------------------------------------
Dim mailBody As String
mailBody = _
"<font size=3 font face=calibri color=black>Dear All,<br><br>" _
& "<font size=3 font face=calibri color=black>BLABLABLA.<br><br>"
'------------------------------------------------------------------
'CREATE MAIL IN OUTLOOK
'------------------------------------------------------------------
With OMail
.To = "TEST@GMAIL.COM"
.CC = ""
.BCC = ""
.Subject = "SUBJECT"
.Display
signature = .HTMLBody
'------------------------------------------------------------------
'IMAGE OF SELECTION [TOOLS/REFERENCES/MICROSOFT WORD OBJECT LIBRARY]
'------------------------------------------------------------------
Dim wdDoc As Word.Document
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Set olApp = CreateObject("Outlook.Application")
Set wdDoc = OMail.GetInspector.WordEditor
wdDoc.Range.PasteAndFormat Type:=wdChartPicture
With wdDoc
.InlineShapes(1).Height = 170
End With
First = .HTMLBody
'------------------------------------------------------------------
'IMAGE OF SELECTION [TOOLS/REFERENCES/MICROSOFT WORD OBJECT LIBRARY]
'------------------------------------------------------------------
Sheets("X").Range("B2:CW132").CopyPicture Appearance:=xlScreen, Format:=xlPicture
Set olApp = CreateObject("Outlook.Application")
Set wdDoc = OMail.GetInspector.WordEditor
wdDoc.Range.PasteAndFormat Type:=wdChartPicture
With wdDoc
.InlineShapes(1).Height = 370
End With
'------------------------------------------------------------------
.HTMLBody = mailBody & vbNewLine & First & .HTMLBody & signature
End With
End Sub