Добавьте изображение в документ Word и масштабируйте его с помощью VBA
как программно добавить изображение с помощью 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 FilesMy Dropboxdailystrategy.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:temptest.doc"
' close the document
Set wrdDoc = Nothing
Set wrdApp = Nothing
End With
в отношении
1 ответов
Ну, сначала нам нужно немного очистить ваш код, как показано ниже. Это отлично работает на моем сайте - он помещает изображение прямо перед закладкой 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
EDIT: 11 января 2010 Приведенный выше код был изменен на 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
это устанавливает изображение в качестве объекта, а затем использует методы масштабирования ScaleHeight
и ScaleWidth
чтобы сделать это на 50% меньше в обоих высота и ширина.