2015-10-16 71 views
1

我需要使用截屏工具捕獲一些屏幕截圖,然後複製&將其粘貼到我的Outlook電子郵件模板中。使用VBA代碼修改Outlook 2013中的圖像寬度

將圖片粘貼到電子郵件模板後,我想通過單擊按鈕將圖像更改爲寬度9釐米(255 ps)。按鈕後面的代碼將在打開的當前項目上運行。

也就是說,代碼必須通過打開的當前項目並識別圖像對象,然後運行代碼以更改圖像寬度(打開縱橫比)。

我已經做了如下所示的一點編碼,但我不能讓它運行。誰可以幫我這個事?

p.s.我做了搜索,想通ShapeRange只適用於的Word,PowerPoint,Excel和項目等

Option Explicit 

Sub ChangeWidth() 

Dim objApp As Outlook.Application 
Dim objItem As Outlook.MailItem 
Dim OrigShape As ShapeRange 
Dim image As Object 

Set objApp = Application 
Set objItem = objApp.ActiveInspector.CurrentItem 

objItem.ShapeRange.LockAspectRatio = msoTrue 
objItem.ShapeRange.Width = 255.1181103 

End Sub 

回答

1

您需要使用InlineShapes

Option Explicit 

Sub ChangeWidth() 

Dim objApp As Outlook.Application 
Dim objItem As Outlook.MailItem 
Dim iShape As InlineShape 
Dim image As Object 

Set objApp = Application 
Set objItem = objApp.ActiveInspector.CurrentItem 

For Each shp In objItem.InlineShapes 
    If shp.HasPicture Then 
     shp.LockAspectRatio = msoTrue 
     'shp.ScaleHeight = 150 
     'shp.ScaleWidth = 150 
     'or 
     shp.Width = 255.1181103 
    End If 
Next 

End Sub 
+0

R3uK嗨, 謝謝您回答! 但是,.HasPicture只適用於ContactItems。因此,我也無法運行程序。您知道如何使用VBA代碼來識別電子郵件正文中是否有圖像? – JJ2015

+0

沒問題,很高興我能幫忙!它能解決你的問題嗎?如果它確實請確認(向上/向下投票中的勾號)答案以標記您的問題已解決! ;) – R3uK

+0

我剛剛看到您的評論的編輯。我沒有想到如何識別這一點,我也要看一看,但是如果你找到了正確的鏈接或其他東西,請在這裏發帖,我會改進我的答案,使其完全發揮作用! ;) – R3uK