Add an Image to Word Document and Scale it using VBA

后端 未结 1 1583
醉梦人生
醉梦人生 2020-12-09 21:56

how do i programatically add an image using VBA to a word document.

I\'ve tried adding a bookmark to the word document and tried adding the image, but it always add

相关标签:
1条回答
  • 2020-12-09 22:06

    Well, first we need to clean up your code a bit, like below. This runs fine on my site - it places the image right at the front of the GraphicImage bookmark, not at the top of the document - but maybe your image is so large it extends to the top?

    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
    

    EDIT: Jan 11, 2010 The above code was changed to include

     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
    

    This sets the picture as an object and then uses the scaling methods ScaleHeight and ScaleWidth to make it 50% smaller in both height and width.

    0 讨论(0)
提交回复
热议问题