2015-10-19 93 views
0

我想在VBA中運行代碼,它將發送HTML電子郵件,並試圖在電子郵件中嵌入圖像。我有以下的代碼可以這樣做:爲什麼我的圖像不嵌入HTML電子郵件中?

Sub EmailImage() 

Dim oApp As Outlook.Application 
Dim oEmail As MailItem 
Dim colAttach As Outlook.Attachments 
Dim oAttach As Outlook.Attachment 

Set oApp = CreateObject("Outlook.Application") 
Set oEmail = oApp.CreateItem(olMailItem) 
Set colAttach = oEmail.Attachments 
Set oAttach = colAttach.Add("C:\Users\User1\Documents\thumbs-up.jpg") 
oEmail.Close olSave 
oEmail.To = "[email protected]" 
oEmail.HTMLBody = "<IMG alt='' hspace=0 src='cid:thumbs-up.jpg' align=baseline border=0>&nbsp;</BODY>" 
oEmail.Send 
Set oEmail = Nothing 
Set colAttach = Nothing 
Set oAttach = Nothing 
Set oApp = Nothing 

End Sub 

但是,什麼情況是,形象得到附着,但有一個盒子中有一個紅叉,其中形象應該是,因爲下面的圖片中顯示:

enter image description here

我曾嘗試以下adapton到代碼:

Sub EmailImage() 
Dim oApp As Outlook.Application 
Dim oEmail As MailItem 
Dim colAttach As Outlook.Attachments 
Dim oAttach As Outlook.Attachment 

Set oApp = CreateObject("Outlook.Application") 
Set oEmail = oApp.CreateItem(olMailItem) 
Set colAttach = oEmail.Attachments 
Set oAttach = colAttach.Add("C:\Users\User1\Documents\thumbs-up.jpg") 

oAttach.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", "MyCid") 

oEmail.Close olSave 
oEmail.To = "[email protected]" 
oEmail.HTMLBody = "<IMG alt='' hspace=0 src='cid:MyCid' align=baseline border=0>&nbsp;</BODY>" 
oEmail.Send 
Set oEmail = Nothing 
Set colAttach = Nothing 
Set oAttach = Nothing 
Set oApp = Nothing 
End Sub 

但是,這給我的錯誤「編譯錯誤:預期=」上線oAttach.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", "MyCid")所以我試圖取出, "MyCid"),再次改變了代碼的電子郵件只是oEmail.HTMLBody = "<IMG alt='' hspace=0 src='cid:thumbs-up.jpg' align=baseline border=0>&nbsp;</BODY>",所以它看起來是這樣的:

Sub EmailImage() 

Dim oApp As Outlook.Application 
Dim oEmail As MailItem 
Dim colAttach As Outlook.Attachments 
Dim oAttach As Outlook.Attachment 

Set oApp = CreateObject("Outlook.Application") 
Set oEmail = oApp.CreateItem(olMailItem) 
Set colAttach = oEmail.Attachments 
Set oAttach = colAttach.Add("C:\Users\User1\Documents\thumbs-up.jpg") 
oAttach.PropertyAccessor.SetProperty ("http://schemas.microsoft.com/mapi/proptag/0x3712001F") 

oEmail.Close olSave 
oEmail.To = "[email protected]" 
oEmail.HTMLBody = "<IMG alt='' hspace=0 src='cid:thumbs-up.jpg' align=baseline border=0>&nbsp;</BODY>" 
oEmail.Send 
Set oEmail = Nothing 
Set colAttach = Nothing 
Set oAttach = Nothing 
Set oApp = Nothing 

End Sub 

但我現在與它在的.SetProperty部分指着得到錯誤Compile error: argument not optionaloAttach.PropertyAccessor.SetProperty ("http://schemas.microsoft.com/mapi/proptag/0x3712001F")

請注意,我使用的是Windows 7,微軟的Excel 2010和Microsoft Outlook 2010中

+0

我認爲你看到的紅色X是因爲它找不到附加/嵌入圖像。你可以檢查一下,看看它在找什麼?也就是說,如果HTML正在嘗試加載它無法訪問的內容,則會看到該框。 – Marc

+0

但是當我點擊附件時,它會打開正確的圖像 –

+0

好的。所以你正確地附加它。但是你沒有正確地嵌入它。正如我所說,檢查紅色X. – Marc

回答

1

好的,谷歌搜索錯誤消息後 「編譯錯誤:預期=」 時,改變行:

oAttach.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", "MyCid") 

到:

Call oAttach.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", "MyCid") 

工作。

我從http://answers.microsoft.com/en-us/office/forum/office_2010-access/vba-compile-error-expect-in-sub-call/a47c752f-3034-41a6-a77c-b3ddaa34b24c?auth=1

發現了這一點感謝您對您的所有意見和解答。

相關問題