从Outlook将图像插入Word Doc

时间:2017-01-28 17:38:18

标签: vba outlook-vba

此代码从Outlook运行并自动化Word。

我想将Outlook邮件项目中的图像附件插入到新的Word文档中。我正在保存附件并使用代码中的图像文件路径,如下所示。

代码成功创建了一个新的Word文档,但如果我使用ActiveDocument对象,则不会插入图像 - 没有错误,只是不起作用。

如果我创建一个新对象(objActiveDoc)来替换ActiveDocument - 为Word明确显示它,我收到错误“请求对象不可用”。

我单独使用Word进行测试(没有Outlook参与),并且可以使用ActiveDocument成功插入图像。

Dim objWord As Word.Application
Dim objDoc As Document
Dim objActiveDoc As Document
Dim ImagePath As String

Set objWord = CreateObject("Word.Application")

Set objDoc = objWord.Documents.Add  'Create a new word Doc

Set objActiveDoc = objWord.ActiveDocument   'Do this as working from Outlook, not Word

ImagePath = "P:\OutlookImage\Image1.jpg"

    'With ActiveDocument '<------------ Does not work, no error
    With objActiveDoc   '<------------- ERROR Requested Object Not Available           
        .Shapes.AddPicture FileName:=ImagePath, _
        LinkToFile:=False, _
        SaveWithDocument:=True, _
        Left:=-5, _
        Top:=5, _
        Anchor:=Selection.Range, _
        Width:=111, _
        Height:=111
    End With

如何将图像插入Word文档?

1 个答案:

答案 0 :(得分:1)

由于您已将objDoc设置为您创建的用于保存图像的新文档,为什么然后忽略它并使用ActiveDocument?

摆脱objActiveDoc并使用objDoc,如果您的图像始终是正方形,您的代码将完全按照您的意愿工作。

如果要添加的图像可能不是正方形,请避免设置高度和宽度,否则可能会使图像失真。