使用VBA将图像添加到Word文档并进行缩放

9

如何使用VBA程序将图片添加到Word文档中?

我尝试在Word文档中添加一个书签,然后再添加图片,但它总是添加到表单的顶部而不是书签区域。我应该继续使用书签还是有其他方法可以添加图片?

请参见下面的代码:

Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Set wrdApp = CreateObject("Word.Application")

Dim objWdRange As Word.Range
Dim GraphImage As String
Dim shortString As String 

shortString = Range("short").Value

GraphImage = "http://xxx.xxxxx.com/xxx/xxx.png?instrument=Image.png"

wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Open("C:\Program Files\My Dropbox\dailystrategy.doc")

Set objWdRange = wrdDoc.Content

With wrdDoc


    If wrdDoc.Bookmarks.Exists("shortString ") Then
        wrdDoc.Bookmarks("shortString ").Range.Text = shortString 
    End If      

     If wrdDoc.Bookmarks.Exists("GraphImage") Then
        wrdDoc.Bookmarks("GraphImage").Range.InlineShapes.AddPicture Filename:=GraphImage, LinkToFile:=False, SaveWithDocument:=True
     End If


    wrdDoc.SaveAs "c:\temp\test.doc"

  ' close the document
    Set wrdDoc = Nothing
    Set wrdApp = Nothing
End With

regards

1个回答

8

首先,我们需要稍微清理一下您的代码,如下所示。这在我的网站上可以正常运行 - 它将图像放置在GraphicImage书签的前面,而不是文档的顶部 - 但也许您的图像太大了,延伸到了顶部?

Dim objWdRange As Word.Range
Dim GraphImage As String
Dim shortString As String
shortString = Range("short").Value '? don't know what this is for
GraphImage = "http://xxx.xxxxx.com/xxx/xxx.png?instrument=Image.png"
wrdApp.Visible = True
    Set wrdDoc = wrdApp.Documents.Open("C:\Program Files\My Dropbox\dailystrategy.doc")
    Set objWdRange = wrdDoc.Content '? don't know what this is for
    With wrdDoc
        If .Bookmarks.Exists("shortString ") Then
           .Bookmarks("shortString ").Range.Text = shortString
        End If
     If .Bookmarks.Exists("GraphImage") Then
         Dim wrdPic As Word.InlineShape
         Set wrdPic = .Bookmarks("GraphImage").Range.InlineShapes.AddPicture(FileName:=GraphImage, LinkToFile:=False, SaveWithDocument:=True)
         wrdPic.ScaleHeight = 50
         wrdPic.ScaleWidth = 50
     End If
       .SaveAs "c:\temp\test.doc"
    End With
    wrdDoc.Close
    Set wrdDoc = Nothing
    wrdApp.Quit
    Set wrdApp = Nothing

编辑:2010年1月11日 上述代码已被更改以包含

 If .Bookmarks.Exists("GraphImage") Then
 Dim wrdPic As Word.InlineShape
 Set wrdPic = .Bookmarks("GraphImage").Range.InlineShapes.AddPicture(FileName:=GraphImage, LinkToFile:=False, SaveWithDocument:=True)
    wrdPic.ScaleHeight = 50
    wrdPic.ScaleWidth = 50
 End If

这将图片作为对象进行设置,然后使用缩放方法ScaleHeightScaleWidth使其在高度和宽度上减小50%。


嗨,谢谢你,你说得对,图像被插入到了正确的位置,但是它的尺寸对于页面来说太大了。有没有办法使用VBA编程设置图像尺寸? - Kojof
可以的。您可以使用内联形状的高度/宽度属性,或者像我上面更新的代码一样使用ScaleHeight/ScaleWidth。 - Todd Main

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接