Ну, сначала нам нужно немного почистить ваш код, как показано ниже. Это нормально работает на моем сайте - оно помещает изображение прямо перед закладкой 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
РЕДАКТИРОВАТЬ: 11 января 2010
Код выше был изменен, чтобы включить
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
Это устанавливает изображение как объект, а затем использует методы масштабирования ScaleHeight
и ScaleWidth
, чтобы сделать его на 50% меньше по высоте и ширине.